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("程序执行完毕。");
持续更新中……