NodeJs Module

NodeJs简述

NodeJs使用的标准是CommonJS,所以在NodeJs中文件就是一个模块。

Node.js的模块分为两类,一类为原生(核心)模块,一类为文件模块。
Node.提供了exports和require两个对象,其中exports是模块公开的接口,require用于从外部获取一个模块接口,即所获取模块的exports对象.

NodeJs的加载

NodeJs模块使用

栗子:

  • 创建模块
const NAME = 'kerison';

function hi(name) {
    name = name || NAME;
    console.log('Hi ! ' + name);
}

function bye() {
    console.log('Goodbye !');
}

target = {
    NAME: NAME,
    hi: hi,
    bye: bye
}

//第一种
// exports.NAME = NAME,
// exports.hi = hi;
// exports.bye = bye;

//第二种
// module.exports.NAME = NAME,
// module.exports.hi = hi;
// module.exports.bye = bye;

//第三种
// exports = target;

//第四种
// module.exports = target;

exports = module.exports = target
  • 使用模块
const hello = require('./src/test/hello');
console.log(hello);
  • 结果
// 1 ,2 4 
{ NAME: 'kerison', hi: [Function: hi], bye: [Function: bye] }
//3
{}
  • 分析

模块的导出是通过exports向外暴露的,exports和module.exports默认都是指向一个对象的引用,所以直接在对象上做导出,两者都一样,如果重新赋值,相应的的引用就相应的做了修改,而module最终导出的module.exports所指向的引用,所以4有结果,3却没结果。

  • 疑问

为啥设计一个exports呢,仅仅是方便导出吗?

你可能感兴趣的:(NodeJs Module)