日期:2014-05-16  浏览次数:20380 次

Node.js开发指南阅读总结-01
1、REPL模式
$ node -e "console.log('hello')"  //REPL(read-eval-print loop[输出-求值-输出循环])模式。

2、脚本的文件名不一定非要用.js,用.js是一种约定。
3、建立http服务器
var http = require('http');//获取http内置服务
function server(request,response){
	res.writeHead(200,{'Content-Type':'text/html'});
	res.write("<h1>hello</h1>");
	res.end("<h1>node.js</h1>");
}
http.createServer(server(request,response)).linten(3000);

4、使用supervisor:监视代码的改动,并自动重启。
$ npm install -g supervisor  //npm 安装
$ supervisor app.js   //使用

5、编程特点:异步I/O与事件紧密结合,控制流靠事件和回调函数来组织。
6、所有的异步I/O在完成时都会放在一个事件列队里,事件靠EventEmitter对象来提供,EventEmitter用法:
var EE = require('events').EventEmitter;
var event = new EE();
event.on('some_event',function(){
	console.log('on some_enent');
});
setTimeout(function(){
	event.emit('some_event');
},1000);

7、模块和包
    7.1、模块:node.js重要组成部分,分为原生模块和文件模块。
        7.1.1、原生(核心)模块。
        7.1.2、文件模块:一个模块对应一个文件,模块包括JS文件(.js)、JSON文件(.json)、编译过的C/C++扩展(.node)。
    7.2、require和exports对象,require用于从外部获取一个模块的接口,即获取模块的exports对象,exports是模块公开的接口。
    7.3、包,类似于java中的包,node.js中的包是一个目录,严格符合commonJS的包其中应该包含:
package.json(必须放在包的顶层目录)。
二进制文件(放在bin目录下)。
JavaScript(放在lib目录)。
文档(放在doc目录)。
单元测试(test目录下)。

    7.4、package.json是CommonJS用来描述包的文件,完全符合CommonJS规范的文件应该包含以下字段。
>>name:包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含空格。
>>description:包的简要说明。
>>version:符合语义化版本识别标示。
>>keywords :关键字数组,通常用于搜索。
>>maintainers:维护者数组,每个元素要包含 name、email  (可选)、web  (可选)字段。
>>contributors:贡献者数组,格式与maintainers相同。包的作者应该是贡献者数组的第一个元素。
>>bugs:提交bug的地址,可以是网址或者电子邮件地址。 
>>licenses :许可证数组,每个元素要包含 type (许可证的名称)和 url  (链接到许可证文本的地址)字段。
>>repositories:仓库托管地址数组,每个元素要包含 type (仓库的类型,如 git  )、url   (仓库的地址)和path相对于仓库的路径,可选)字段。

8、node.js包管理器,即npm是node.js官方提供的包管理工具。
    8.1、获取一个包
$ npm install[i] 包名

    8.2、模式
        8.2.1、本地模式,使用npm默认使用本地模式,即把包安装到当前目录下的node_modules子目录下(node的安装目录)。
        8.2.2、全局模式,npm会把包安装到系统目录,命令如下:
$ npm install[i] -g 包名

    8.3、全局连接,用户在本地包和全局包之间创建一个符号连接,全局包不能使用require,但可以通过npm link打破这一限制。除了将全局的包链接到本地以外,使用npm link 命令还可以将本地的包链接到全局。命令如下:
$ npm link 包名

    8.4、发布包,发布前我们首先需要一个符合npm规范的包。
$ npm init