自定义模块 test.js
function tiemo(){
console.log('贴膜.........');
}
//暴露数据
module.exports = tiemo;
主程序index.js
//引入自定义模块
const tiemo = require('./test.js');
//调用函数
tiemo();
调用:
模块暴露数据的方式有两种:
使用时有几点注意:
function tiemo(){
console.log('贴膜.........');
}
function niejiao(){
console.log('捏脚.........');
}
//暴露数据
module.exports = {tiemo,niejiao};
index.js
//引入自定义模块
const me = require('./test.js');
console.log(me);
在模块中使用require传入文件路径即可引入文件
const test = require('./me.js');
require使用的一些注意事项:
module.exports、exports以及require这些都是CommonJS模块化规范中的内容,而Node.js实现了CommonJS模块化规范。
function require(file){
//将相对路径转为绝对路径,定位目标文件
let absolutePath = path.resolve(__dirname, file);
//2.缓存监测
if(caches[absolutePath]){
return caches[absolutePath];
}
//3.读取文件的代码
let code = fs.readFileSync(absolutePath).toString();
//4.包裹为一个函数 然后执行
let module = {};
let exports = module.exports ={}
(function (exports, require, module, __filename, __dirname){
const test = {
name:'尚硅谷'
}
module.exports = test;
//输出
console.log(arguments.callee.toString());
})(exports, require, module, __filename, __dirname)
//5.缓存结果
caches[absolutePath] = module.exports;
//6.返回module.exports的值
return module.exports;
}
const m = require('./me.js');
module.exports、exports以及require这些都是CommonJS模块化规范中的内容。而Node.js是实现了CommonJS模块化规范,二者关系有点像JavaScript与ECMAScript