NodeJs简述
NodeJs使用的标准是CommonJS,所以在NodeJs中文件就是一个模块。
Node.js的模块分为两类,一类为原生(核心)模块,一类为文件模块。
Node.提供了exports和require两个对象,其中exports是模块公开的接口,require用于从外部获取一个模块接口,即所获取模块的exports对象.
NodeJs的加载
NodeJs模块使用
栗子:
- 创建模块
const NAME = 'kerison';
function hi(name) {
name = name || NAME;
console.log('Hi ! ' + name);
}
function bye() {
console.log('Goodbye !');
}
target = {
NAME: NAME,
hi: hi,
bye: bye
}
//第一种
// exports.NAME = NAME,
// exports.hi = hi;
// exports.bye = bye;
//第二种
// module.exports.NAME = NAME,
// module.exports.hi = hi;
// module.exports.bye = bye;
//第三种
// exports = target;
//第四种
// module.exports = target;
exports = module.exports = target
- 使用模块
const hello = require('./src/test/hello');
console.log(hello);
- 结果
// 1 ,2 4
{ NAME: 'kerison', hi: [Function: hi], bye: [Function: bye] }
//3
{}
- 分析
模块的导出是通过exports向外暴露的,exports和module.exports默认都是指向一个对象的引用,所以直接在对象上做导出,两者都一样,如果重新赋值,相应的的引用就相应的做了修改,而module最终导出的module.exports所指向的引用,所以4有结果,3却没结果。
- 疑问
为啥设计一个exports呢,仅仅是方便导出吗?
网友评论