快速掌握如何在 NodeJs 中定义模块


定义模块

方式一

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
//moduleClass.js
//导出一个类
module.exports = class classModule {
  constructor(para) {
    this.para = para;
  }

  test() {
    return this.para + 2;
  }
};

方式二

1
2
3
4
5
6
7
//moduleExample.js
//使用exports
const tmpData = "+私有变量+";

exports.testa = (r) => console.log("testA执行" + tmpData + r);

exports.testb = (r) => console.log("testB执行" + tmpData + r);

事件

1
2
3
4
5
6
7
8
9
//moduleEvent.js
const EventEmitter = require("events");

module.exports = new EventEmitter();

//一秒后触发事件
setTimeout(() => {
  module.exports.emit("ready");
}, 1000);

导入模块

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
const classModule = require("./moduleClass");
const eventModule = require("./moduleEvent");
const example = require("./moduleExample");

var tmpClass = new classModule(1);
console.log("classModule.test():" + tmpClass.test());

eventModule.on("ready", () => {
  console.log("ready事件触发了");
});

example.testa(1);
example.testb(2);

输出

1
2
3
4
classModule.test():3
testA执行+私有变量+1
testB执行+私有变量+2
ready事件触发了

源码下载

https://github.com/MscoderStudio/nodejs-tutorials/tree/master/module_example

官方文档

https://nodejs.org/dist/latest-v10.x/docs/api/modules.html#modules_exports