前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Node.js的模块,有哪些全局变量?

Node.js的模块,有哪些全局变量?

原创
作者头像
Learn-anything.cn
发布2021-11-26 12:45:54
2.6K0
发布2021-11-26 12:45:54
举报
文章被收录于专栏:learn-anything.cn
一、模块的作用

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

二、全局变量

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

代码语言:txt
复制
// 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 就可以看到输出结果。

代码语言:txt
复制
// 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));
四、参考文档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、模块的作用
  • 二、全局变量
  • 三、通过实例查看各变量
  • 四、参考文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档