本文内容摘自七天学会NodeJS,摘抄内容只是本人觉得比较重要或者还没有理解的
模块
require
var foo1 = require('./foo');
var foo2 = require('./foo.js');
var foo3 = require('/home/user/foo');
var foo4 = require('/home/user/foo.js');
// foo1至foo4中保存的是同一个模块的导出对象。
var data = require('./data.json');
exports
exports.hello = function () {
console.log('Hello World!');
};
module
module.exports = function () {
console.log('Hello World!');
};
模块初始化
包(package)
- /home/user/lib/
- cat/
head.js
body.js
main.js
var head = require('./head');
var body = require('./body');
exports.create = function (name) {
return {
name: name,head: head.create(),body: body.create()
};
};
index.js
var cat = require('/home/user/lib/cat');
var cat = require('/home/user/lib/cat/index');
package.json
- /home/user/lib/
- cat/
+ doc/
- lib/
head.js
body.js
main.js
+ tests/
package.json
{
"name": "cat","main": "./lib/main.js"
}
Windows
@node "C:\User\user\bin\node-echo.js" %*
NPM
下载三方包
$ npm install argv@0.0.1
...
argv@0.0.1 node_modules\argv
{
"name": "node-echo","main": "./lib/echo.js","dependencies": {
"argv": "0.0.2"
}
}
- project/
- node_modules/
- node-echo/
- node_modules/
+ argv/
...
...
发布代码
{
"name": "node-echo",# 包名,在NPM服务器上须要保持唯一
"version": "1.0.0",# 当前版本号
"dependencies": { # 三方包依赖,需要指定包名和版本号
"argv": "0.0.2"
},# 入口模块位置
"bin" : {
"node-echo": "./bin/node-echo" # 命令行程序名和主模块位置
}
}
版本号
+ 如果只是修复bug,需要更新Z位。
+ 如果是新增了功能,但是向下兼容,需要更新Y位。
+ 如果有大变动,向下不兼容,需要更新X位。
url.format({
protocol: 'http:',host: 'www.example.com',pathname: '/p/a/t/h',search: 'query=string'
});
/* =>
'http://www.example.com/p/a/t/h?query=string'
*/
url.resolve('http://www.example.com/foo/bar','../baz');
/* =>
http://www.example.com/baz
*/