Node.js 的基础教学之exports or module.exports
这个scope是Node.js 的, 不是ES7的JavaScript Module
Exports
举个例子
function a() {
// your logics
}
exports.a = a;
原因就是 exports
就相当于是modules.exports
的一个reference, 看官方直接指出 (https://nodejs.org/api/modules.html#modules_exports
), 就是一个shortcut (https://nodejs.org/api/modules.html#modules_exports_shortcut
)
简单粗暴的理解就是
exports = module.exports = {}
Require
知道exports
就得知道require
. 我猜你以前写过没有后缀文件的引用
var x = require('a');
var y = require('./b');
var z = require('../c');
也有可能第一次用后缀的是用新的node --experimental-modules
写法 (https://nodejs.org/api/esm.html
), 比如:
import './node_modules/commonjs-package/index.js';
其实, 以下也是成立的
var x = require('./a');
var y = require('./a.js');
var z = require('./a.json');
var g = require('./a.node');
顺序是 a > a.js > a.json > a.node
可以看官方文件 (https://nodejs.org/api/modules.html#modules_all_together
)
附送一些常见的nodejs 自带libraries.
当然了, 愿意深挖的请继续
- https://flaviocopes.com/es-modules/
- https://eloquentjavascript.net/10_modules.html
- https://exploringjs.com/es6/ch_modules.html