CommonJS
通常用于服务器,是一种同步模块加载方案。
默认指向同一个对象。
module.exports = {}
如果module.exports和exports指向不一样,以module.exports为准。
自动判断不会重复引用。
conmmonJS模块化的特点:
1、同步加载
2、多次引入只会实例化一次
3、模块化每个js文件都是独立模块(作用域完全独立)
路由的模糊匹配
首先找/ 所以需要注意子路由和主要路由的地址不能冲突,不然都会被/找到
动态路由传参
//访问地址是http://127.0.0.1/api/1/2/3
router.get('/api/:a/:b/:c',function(req,res){
const {a,b,c} = req.params;//取得参数值。
})
请求头传参:
//请求的地址是http://127.0.0.1/api?a=1&b=2&c=3
router.get('/api',function(req,res){
const {a,b,c} = req.query;//取得参数值。
})
请求体传参:
//请求的地址是http://127.0.0.1/api?a=1&b=2&c=3
router.post('/api',function(req,res){
const {a,b,c} = req.query;//取得参数值。
const {x,y} = req.body;//取得参数值。
})
独有的
//请求的地址是http://127.0.0.1/api
router.post('/api',function(req,res){
const {a,b,c} = req.body;//取得参数值。
})
带分隔符的用params取,带?后的用query取,参数在请求体中的用body取。
req.auth//express-jwt组件解析token
req.query//get
req.body//post
req.params//动态路由传递
res.send()
res.josn()
res.staus(401)//状态码
res.sendFile()
res.download()
res.setHeader()
es6模块化
js模块化4种方式的区别:
1、commonjs是同步加载,其他是异步加载。
2、es6的模块化是动态执行(每次取值都是新的值),而其他方式的模块都是运行缓存。
3、amd追求模块加载优先,而cmd追求按需加载。