1.CommonJS(Nodejs)中自定义模块的规定
- 1.我们可以把公共的功能抽离为一个单独的
js
文件,作为一个模块,默认情况下,这个模块里面的方法或者属性,在外面是没法访问的。如果要让外部可以访问模块里面的方法或者属性,就必须在模块里面通过exports
或者module.exports
暴露属性或者方法。 - 在需要使用这些模块的文件中,通过
require
的方式引入这个模块。这时候就可以使用模块里面暴露的属性和方法。
2.具体应用
exports.get=function(){
console.log("Get方法被调用");
}
exports.post=function(){
console.log("Post方法被调用");
}
exports.delete=function(){
console.log("Delete方法被调用");
}
exports.put=function(){
console.log("Put方法被调用");
}
var request = require("./second.js")
request.get();
module.exports
:通常用于暴露整个对象
var request = {};
request.get = function(){
console.log("Get方法被调用");
}
request.put = function(){
console.log("Put方法被调用");
}
request.post = function(){
console.log("Post方法被调用");
}
request.delte = function(){
console.log("Delete方法被调用");
}
module.exports = request;
var request = require("./third.js")
request.post();
3.node_modules
目录的使用
MyCode
└─node_modules
| ├─commons
| | └─ index.js
| └─request
| └─ method.js
| └─ package.json
└─test.js
const commons = require("./node_modules/commons/index")
commons.timeFormat();
- 使用
node_modules
规定进行引用(nodejs
规定会自动寻找node_modules
下面模块中的index.js
)
var commons = require("commons")
commons.timeFormat();
package.json
:如果node_modules
下面的模块中没有index.js
文件,如node_modules
下request
模块中只有method.js
文件,就需要使用pacage.json
来处理
- 1.进入
method.js
同级目录 - 2.使用
npm init --yes
命令来生成package.json
文件{
"name": "request",
"version": "1.0.0",
"description": "",
"main": "method.js", # 主入口
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
- 3.引入模块
var request = require("request")
request.get();