概述
module模块:
在node中,一个文件就是一个模块。
有一个文件Demo.js
第一行中,Demo.js
加载了同一目录下的 user.js
模块
let user = require('./User') console.log(`userame:${user.userName},say ${user.sayHello()}`)
User.js:
module.exports = { userName: 'jack', sayHello: function() { return 'hello' } }
user.js模块导出了username和sayHello
通过在特殊的 exports
对象上指定额外的属性是私有的,不可被赋予新的值
但是module.exports属性可以被赋予一个新的值(例如函数或对象)。
export和module.export区别:
你改变不了 exports 的引用。准确来说,是*改变后实际导出*的还是 exports 原引用指向的对象。
module.exports 就是用来修复此问题的。
在node中,一个文件就是一个模块。实际上,为了让各个文件里的变量互不干扰,node让每个模块都放在一个闭包中执行,这样实现的模块的隔离。而要让模块间相互联系,就需要暴露变量。
node源码里面,定义了一个Module构造函数,每个模块都是Module的实例,而exports则是Module的一个属性。function Module(id, parent) {
this.id = id;
this.exports = {};
...
}
module.exports = Module;
模块的输出就是exports。模块想要对外暴露变量只需要对exports赋值。
// a.js
function foo() {
console.log('foo');
}
function bar() {
console.log('bar');
}
exports.foo = foo;
exports.bar = bar;
module.exports = {
foo: foo,
bar: bar
}
// 错误
exports = {
foo: foo,
bar: bar
}
最后
以上就是仁爱彩虹为你收集整理的node.js学习记录 模块module的全部内容,希望文章能够帮你解决node.js学习记录 模块module所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。