es5 方式 :
01.js:
const sum = function(a,b){
return a + b;
}
const subtract = function(a,b){
return a - b;
}
//把对应的方法暴露出去以供调用
module.exports = {
f_sum: sum,
//sum //可以默认使用原函数名
//f_sub: subtract
subtract //可以默认使用原函数名
};
02.js:
//引入模块
const math = require('./01.js');
console.log(math.f_sum(5,6));
//console.log(math.f_sub(10,3));
console.log(math.subtract(8,3));
在命令窗口使用node运行:
node .\02.js
结果如下:
================================================================================================
es6方式,又分为两种:
第一种:
01.js:
//直接注明方法暴露
export function getMessage(){
console.log("getMessage....");
}
export function getData(){
console.log("getData...");
}
02.js:
//引入对应的暴露方法
import {getMessage,getData} from './01.js';
getMessage();
getData();
需要注意的是,nodejs不能直接运行es6模块化代码(普通es6代码可以),需要经过babel转码后再使用nodejs运行,结果如下:
第二种:
01.js:
export default({
getInfo(){
console.log("info....");
},
getCode(){
console.log("code....");
}
});
02.js:
//引入模块并为其设置别名
import data from './01.js';
//调用方法
data.getInfo();
data.getCode();
然后用babel转码,nodejs运行,得到结果: