express学习笔记
上午还不知道为什么js排名第二屎,现在就遇到了
1.express接收不到post请求的body
默认情况下打印req.body
会发现是undefined
,express4的新特性,需要告诉他把请求体作为json解析才可以。
app.use(express.json());
也可以指定给单个接口
app.use('/api', express.json(), function(req, res) {
var data = req.body; //这时data就是期望的json了
});
2.如果请求体不是json怎么办
常用的bodyParser有下面几种:
express.text()
express.json()
express.raw()
express.urlencoded({ extended: false })
具体看使用情况,有时候还可以两个组合使用。
要注意这个解析还是会看请求头的,然后才使用对应的parser,比如只是用text
并不能把json也变成text,需要这样做:
app.use(express.text({type:"*/*"}));
不过还有一些神奇的特性,比如urlencoded
和json
一起使用可以把querystring和json都变成json,就可以统一处理了。
问题解决,也不屎嘛