我有一个expressJS API。在POST路由中,我只接受两种类型的标题:
application/x-www-form-urlencoded
application/json
有没有一种方法可以表示强制只接受两个标头并拒绝任何其他POST
请求并回复某种400错误?
答案 0 :(得分:4)
您可以在每个路由或所有路由中使用这样的简单中间件:
var RE_CONTYPE = /^application\/(?:x-www-form-urlencoded|json)(?:[\s;]|$)/i;
app.use(function(req, res, next) {
if (req.method === 'POST' && !RE_CONTYPE.test(req.headers['content-type']))
return res.send(406);
next();
});