我正在使用expressjs为我的应用程序实现api调用。很多时候我不想在体内发回额外的数据,但是如果你没有指定一个正文,expressjs会在回复中发送http状态文本。
对于正文中的res.send(200);
输出OK
,res.send(400);
输出Not Found
等等。
问题是我的UI期望格式良好的JSON或空体,并且裸字符串违反了这个约定。我现在找到的工作是发送res.send(200,{});
发送一个空对象,但是对于每个api调用来说都是痛苦的。
有没有办法绕过快速回复这个空文本的空白文本?
答案 0 :(得分:0)
如果不修改快速库本身,您可以创建一个扩展res.send
功能的中间件函数。
您可以修改res.send
,以便在仅使用状态代码调用时将空字符串添加到其参数中。这将阻止发送状态代码的名称。
app.use(function(req, res, next) {
var send = res.send;
res.send = function() {
if (arguments.length == 1 && typeof arguments[0] == 'number') {
arguments[arguments.length++] = '';
}
return send.apply(res, arguments);
};
next();
});
app.get('/good', function(req, res) {
res.send(200);
});
app.get('/not-found', function(req, res) {
res.send(404);
});