Nodejs 全局对象与模块导入和导出
全局对象 global
在 node.js 环境中 global
是全局对象,类似于浏览器环境下 JavaScript 的 window
全局对象
Warning
在根作用域下使用关键字 var
声明的变量会挂载到 window
对象上,但是如果在 node.js 环境中则不会,只能使用 global.variableName = value
的显式声明为 global
属性的方式才可以将变量挂载到全局对象上。
导入导出
由于 node.js 对于文件模块的作用域有明显区分,需要使用 module.exports
和 required(path)
的方式来导出和加载不同模块。
js
// 📁 data.js
// 导出变量 data(及其存储的数据)
var data = 2;
module.exports = data;
js
// 📁 app.js
// 导入存放在同级目录下的 data.js 模块,并存放在变量 data 中
var data = require('./data');
console.log(data); // 2
Tip
可以使用「简写」方式 exports.variable = value
来导出数据或函数,相当于 module.exports = { variable: value }
即以「简写」形式导出的数据会被包含在一个对象中,作为该对象的属性,因此在导入时读取数据要以对象属性的方式来访问。
Warning
如果在模块中使用了 module.exports
的方式来导出,则「简写」形式的导出会被覆盖,而且每个模块只识别第一个 module.exports
语句进行数据导出,以后的导出语句都会忽略。