Node.js 学习总结

Node.js 教程

http://www.runoob.com/nodejs/nodejs-tutorial.html

  • Node.js 是运行在服务端的 JavaScript
  • Node.js REPL(Read Eval Print Loop:交互式解释器) 像命令行程序(cmd.exe)
  • NPM是包管理工具,上传自己的包或下载别人的包
  • Node.js提供的库函数,几乎都支持回调。(函数最后一个参数就是回调函数参数。)
  • 用EventEmitter类来支持事件(Event), eventEmitter.on来绑定事件,eventEmitter.emit来触发事件。
  • 模块: 一个 Node.js 文件就是一个模块,用exports导出。
  • //hello.js 
    function Hello() { 
        var name; 
        this.setName = function(thyName) { 
            name = thyName; 
        }; 
        this.sayHello = function() { 
            console.log('Hello ' + name); 
        }; 
    }; 
    module.exports = Hello;
  • 路由:得到路径后,根据路径后应该做路由处理,具体看教程网址。
  • Express 简介: Web应用框架。 (没必要自己从头写,使用前需: $ npm install express)
  • RESTful API:  采用JSON 数据格式,对数据增删改查。从下面的例子中也看到了Express的用法。
  • var express = require('express');
    var app = express();
    var fs = require("fs");
    
    app.get('/listUsers', function (req, res) {
       fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
           console.log( data );
           res.end( data );
       });
    })
    
    
    
    //添加的新用户数据
    var user = {
       "user4" : {
          "name" : "mohit",
          "password" : "password4",
          "profession" : "teacher",
          "id": 4
       }
    }
    
    app.get('/addUser', function (req, res) {
       // 读取已存在的数据
       fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
           data = JSON.parse( data );
           data["user4"] = user["user4"];
           console.log( data );
           res.end( JSON.stringify(data));
       });
    })
    
    
    app.get('/:id', function (req, res) {
       // 首先我们读取已存在的用户
       fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
           data = JSON.parse( data );
           var user = data["user" + req.params.id] 
           console.log( user );
           res.end( JSON.stringify(user));
       });
    })
    
    
    var id = 2;
    app.get('/deleteUser', function (req, res) {
    
       // First read existing users.
       fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
           data = JSON.parse( data );
           delete data["user" + 2];
           
           console.log( data );
           res.end( JSON.stringify(data));
       });
    })
    
    
    var server = app.listen(8081, function () {
    
      var host = server.address().address
      var port = server.address().port
    
      console.log("应用实例,访问地址为 http://%s:%s", host, port)
    
    })
  • 多进程: Node 提供了 child_process 模块来创建子进程
// support.js 文件代码:
console.log("进程 " + process.argv[2] + " 执行。" );


//master.js 文件代码:
const fs = require('fs');
const child_process = require('child_process');
 
for(var i=0; i<3; i++) {
    var workerProcess = child_process.exec('node support.js '+i, function (error, stdout, stderr) {
        if (error) {
            console.log(error.stack);
            console.log('Error code: '+error.code);
            console.log('Signal received: '+error.signal);
        }
        console.log('stdout: ' + stdout);
        console.log('stderr: ' + stderr);
    });
 
    workerProcess.on('exit', function (code) {
        console.log('子进程已退出,退出码 '+code);
    });
}

猜你喜欢

转载自blog.csdn.net/jfyy/article/details/84372936