nodejs模块化
模块化
require
在NodeJS中,一个JS文件就是一个单独的模块,而文件路径(可以是相对路径,也可以是绝对路径)就是模块名。(模块名中的.js扩展名可以省略)
// 模块名中的.js可省略
var foo1 = require('./foo');
var foo2 = require('./foo.js');
// 相对路径与绝对路径皆可
var foo3 = require('/home/user/foo')
另外,还可以使用require加载一个JSON文件。
var data = require('./data.json');
exports
exports.hello = function() {
console.log('Hello World');
};
module
module.exports = function() {
console.log('Hello World');
};
模块路径解析规则
- 内置模块
如果传递给require函数的是NodeJS内置模块名,则不做路径解析,例如require('fs')。 node_modules目录
NodeJS定义了一个特殊的node_modules目录用于存放模块。例如某个模块的绝对路径是/home/user/hello.js,在该模块中使用require('foo/bar')方式加载模块时,NodeJS将依次尝试使用以下路径:/home/user/node_modules/foo/bar/home/node_modules/foo/bar/node_modules/foo/bar
NODE_PATH环境变量
index.js
var cat = require('/home/user/lib/cat');
// 等价于
var cat = require('/home/user/lib/cat/index');

浙公网安备 33010602011771号