在 Node.js 中,每个文件都是一个模块,你可以通过 module.exports
把这个模块中的内容(变量、函数、对象等)导出,以便在其他文件中使用。
module.exports = {
myapp: {
myweb: "http://localhost:8080"
}
};
这表示你导出了一个对象,对象里面有一个字段 myapp
,它又包含一个字段 myweb
。
config.js
module.exports = {
myapp: {
myweb: "http://localhost:8080"
}
};
hello.js
const config = require('./config'); // 引入 config.js 的导出内容
console.log(config.myapp.myweb); // 输出: http://localhost:8080
Node.js 内部每个文件都有一个隐藏的包裹结构:
(function (exports, require, module, __filename, __dirname) {
// 你写的代码其实是这样被包装的
})
所以 module.exports = ...
就是告诉 Node:
“我要导出这个东西,让其他模块可以
require()
它。”
对比 exports.xxx = xxx
exports.myapp = { myweb: "http://localhost:8080" };
这也是合法的写法,但注意:
exports
是 module.exports
的引用
如果你直接对 module.exports
赋值(如对象、函数),exports
就会失效
推荐用 module.exports = {...}
方式,更明确、更安全。