Node 命令

//查看版本
node -v

//命令之后 直接在命令行中 编写脚本(基本不用,知道就行)
$ node
> console.log('Hello World!');

//当前目录下运行脚本文件 (.js可以省略)
node index.js

//npm版本
npm -v

//命令 安装模块
npm install <Module Name>

开启Node服务器

相应的数据类型可以参考开源中国中的在线工具中的Content-Type(Mime-Type)对照表。比如常用的:

  • text/plain字符串 image/jpeg图片 image/png图片 text/css CSS text/html标签

var http = require("http");

http.createServer(function (request, response) {

    //url仅仅只是一个标示 没有任何意义 从 / 开始,不包含协议和域名
    var url = request.url;
    
    if(url == "/"){
        //发送HTTP头部 状态值: 200  内容类型: text/plain
        response.writeHead(200, {'Content-Type': 'text/plain'});
        
        // 发送响应数据 "Hello World"
        response.write("Hello World")
        
        //结束响应
        response.end();
    
    }else{
    
        response.end("404 Not Found");

    }

    
    //响应端口 8888
}).listen(8888);


// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');


CSS 图片等资源加载

当浏览器在加载HTML过程中,遇到具有href的link,具有src的script,具有src的img等具有外链的,又需要在内部使用的资源,这个时候,浏览器会对该资源指向的连接自动发起请求。

utf-8是字符编码,如果是音乐、图片、视频等文件的时候,一定不要指定该编码,直接发送二进制数据就行了

Node文件操作


var fs = require("fs");

//文件操作中,路径如果是 / 开始,则会到当前脚本所在的磁盘目录下去寻找,而不是当前目录
fs.writeFile("./a.txt","Hello Node",function(err){
    if(err){
        throw err  //这样会程序崩溃,只是调试用的,release版本不能这样
    }

    console.log("saved")
})

fs.readFile("./a.txt","utf8",function(err,data){
    if(err){
        throw err
    }
    
    console.log(data)
})

Node事件驱动

Node.js 使用事件驱动模型,类似于观察者模式。Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。


var events = require("events")

//创建eventEmitter对象
var eventEmitter = new events.EventEmitter()

//创建事件处理程序
var connectHandler = function connect(){
    console.log("连接成功")

    //触发data_received事件
    eventEmitter.emit("data_received")
}

//绑定事件
eventEmitter.on("connection",connectHandler)

    // 使用匿名函数绑定 data_received 事件
    eventEmitter.on('data_received', function(){
    console.log('数据接收成功。');
});

// 触发 connection 事件
eventEmitter.emit('connection');

console.log("程序执行完毕。");

持续更新中……