目前我有一个相当基础的RESTful API,并且我的Express应用程序已配置如下:
app.configure(function () {
app.use(express.static(__dirname + '/public'));
app.use(express.logger('dev'));
app.use(express.bodyParser());
});
app.post('/api/vehicles', vehicles.addVehicle);
我该如何/在哪里添加中间件以阻止请求到达我的app.post
和app.get
,如果内容类型不是application/json
?这个中间件应该只会停止带有不正确Content-Type的请求到一个以
/api/
开头的URL。
contype.indexOf()
是在搜索一个字符串并确保它以'application/json'
开头。如果它不在字符串的开头,那么它就是其他内容类型(甚至可能是像'foo/x-bar-baz; blah=application/json'
这样的东西)。 - mscdexreq.headers['content-type']
会返回一个数组本身,所以你只需要使用!== -1
搜索该数组中是否有'application/json'
即可。 - Dado