乐趣区

关于node.js:Nodejs的模块有哪些全局变量

一、模块的作用

把实现某个性能的函数,放到独自 js 文件中,这个 js 文件就被称模块 (module),其余代码只需导入这个 js 文件,即可应用其性能,达到代码复用的目标。当然除了函数,还能够把变量、class 放到模块中,实现代码复用。


二、全局变量

模块被 Node.js 加载时,会用函数将其进行包裹,所以就有了 5 个模块内全局变量:

// Node.js 包裹模块的函数如下:(function(exports, require, module, __filename, __dirname) {// 理论模块代码,在这里});
  1. exports:将本模块接口进行导出。另一种表达方式是 module.exports
  2. require:蕴含本模块导入其余模块的信息。require.main 等同于 module
  3. module:指向以后模块的援用,蕴含以后模块的门路、目录等信息。
  4. __filename:示意以后模块文件的门路(蕴含模块文件名的全门路)
  5. __dirname:示意以后模块所在文件夹的门路

三、通过实例查看各变量

创立 example.js 文件,复制如下代码到文件中保留,在终端中执行 node example.js 就能够看到输入后果。

// example.js
const path = require('path');
const {PI} = Math;

console.log("\r\n\r\n************************");

// 导出接口 (module.exports 等同于 exports)
exports.area = (r) => PI * r ** 2;
module.exports.area1 = (r) => PI * r ** 2;

// 查看本模块导出那些接口
console.log("exports :", exports, "\r\n\r\n************************");

// 查看本模块导入模块的信息
console.log("require :", require, "\r\n\r\n************************");

// 查看 module 对象到底蕴含什么?console.log("module :", module);
console.log("module.exports :", module.exports, "\r\n\r\n************************");

// 查看本模块的残缺文件名
console.log("__filename :", __filename, "\r\n\r\n************************");

// 查看本模块的目录
console.log("__dirname :", __dirname, "\r\n\r\n************************");


// 通过 path 模块提供的办法,来查看本模块的残缺文件名
console.log("path.dirname(__filename) :", path.dirname(__filename));

四、参考文档
  • Node.js 的模块,有哪些全局变量?
退出移动版