Node.js风格的CommonJS模块

CommonJS 模块用于在服务器环境中使用,而 Node.js 使用了 CommonJS 模块的轻微修改版本,本文就介绍这种 Node.js 风格的 CommonJS 模块。

模块是 .js 文件。

1.导出

Node.js 通过将需要导出的模块成员赋值给 module.exports 来实现导出。

同一个模块中可以同时存在多个 module.exports = 值 ,后定义的 module.exports = 值 会覆盖先定义的 module.exports = 值

//module.exports的类型
console.log(typeof module.exports);  // "object"
//module.exports的默认值
console.log(module.exports);         // {}

1.1导出一个对象字面量

module.exports 的值为一个对象字面量,对象字面量的属性为需要导出的模块成员。

//前缀方式(前面的module.可以省略,一般不推荐省略)
[module.]exports.成员名1 = 成员定义1;
[module.]exports.成员名2 = 成员定义2;
[module.]exports.成员名N = 成员定义N;
//末尾方式
成员定义1
成员定义2
成员定义N

module.exports = { 成员名1, 成员名2, 成员名N };

1.2导出一个模块成员

module.exports 的值为一个模块成员。

//前缀方式
module.exports = 成员定义;
//末尾方式
成员定义

module.exports = 成员名;

2.导入

require() 函数的返回值是 '模块标识符' 导出的模块成员。

//模块标识符格式
//绝对路径
require('/module.js');
//相对路径
require('./module.js');
require('../module.js');

//Node.js内置模块
require('node:http');

//npm包内模块
require('包名');

2.1返回值为一个对象字面量

//使用解构赋值只导入打算使用的模块成员
const { 成员名1, 成员名2, 成员名N } = require('模块标识符');
const { 成员名1: 成员别名1, 成员名2: 成员别名2, 成员名N: 成员别名N } = require('模块标识符');

2.2返回值为一个模块成员

//const关键字后的成员名非必须与导出的成员名相同
const 成员名 = require('模块标识符');

3.访问导入的成员

成员名
成员别名

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/javascriptexp/21371.html

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2023年3月2日 11:26
下一篇 2023年5月11日 23:17

相关推荐

  • innerHTML、outerHTML、textContent、innerText、outerText实例属性的区别

    1.innerHTML和outerHTML区别 类 实例属性 区别 Element innerHTML 目标元素标签之间的 HTML 代码,不包括目标元素标签本身。 Element outerHTML 目标元素标签之间的 HTML 代码,包括目标元素标签本身。 2.textContent和innerText区别 类 实…

    JavaScript经验 2023年10月15日
    07500
  • JavaScript语言的成员名

    支持类的成员:静态字段、静态访问器属性、静态方法、实例字段、实例访问器属性、实例方法。 支持对象字面量的成员:数据属性、访问器属性、方法。 成员名的类型只可以为 字符串类型(包括空字符串) 或者 符号类型。 注意:此处成员名用于“成员声明”的时候,而不是“访问成员”的时候。 实际上,比较两个成员名是否相等采用的是相等 …

    JavaScript经验 2025年4月3日
    01210
  • 使用CSS的三种方式

    1.内联(Inline)方式 内联(Inline)方式,又称为行内方式。往往用于单个元素。 2.内部(Internal)方式 往往用于单个网页。 3.外部(External)方式 往往用于所有网页。 4.优先级 当同时存在多种使用 CSS 的方式时,如果为相同的选择器(元素)定义了相同的 CSS 属性名,则优先级如下:…

    JavaScript经验 2023年10月10日
    07100

发表回复

登录后才能评论