自定义模块:自己定义开发的node.js模块,利用module和module.exports对外暴露。
自定义模块的加载机制:使用require()加载自定义模块时,必须指定以./或../开头的路径标识符。在加载自定义模块时,如果没有指定/或..这样的路径标识符,则node会把它当作内置模块或第三方模块进行加载。同时,在使用require()导入自定义模块时,如果省略了文件的扩展名,则 Node.js 会按顺序分别尝试加载以下的文件:
1)按照确切的文件名进行加载
2)补全.js扩展名进行加载
3)补全.json扩展名进行加载
4)补全.node扩展名进行加载
5)加载失败,终端报错
1、自定义模块案例
mtest.js
module.exports.name = "xiao ming"
exports = {
type: 1,
taskid:456
}
mtest2.js
exports.fun = function(){
console.log("ex")
}
module.exports.name = "xiao ming"
m1.js
// 模块后可以不加js
const mo = require("./mtest")
console.log(mo)
m2.js
const mo = require("./mtest2")
console.log(mo)
总结:module.exports和exports同时出现时覆盖对象时,以module.exports为准。如果只是赋值这两个对象功能一样。