18

因此,当登录验证失败时,我目前使用 res.send(401) 进行响应。但是,我想发送一段文本或 html 以及错误代码。

我试过这个:

res.write('string');
res.send(401);

但抛出一个错误,我的服务器无法启动。

4

4 回答 4

31

您正在将 Express 方法与本机 HTTP 方法混合使用。由于 Express' 在内部使用本机 HTTP 模块,因此您应该使用其中一个。

// Express
res.status(401);
res.send('string');
// or the shortcut method
res.send(401, 'string');

// HTTP
res.writeHead(401);
res.end('string');
于 2013-11-14T01:13:41.080 回答
12

来自express docs中的示例

res.status(404).send('Sorry, we cannot find that!');
res.status(500).send({ error: 'something blew up' });
于 2013-11-14T01:04:59.490 回答
3

一个更详细的示例,但即使您尝试呈现模板也可以:

res.status(401).send('Unauthorized')

或者

res.status(401).render('/401.html')

于 2013-11-15T08:44:09.213 回答
0
res.send(error_code,msg);

已弃用。你应该这样做。

res.status(error_code).send(msg);

更新: 对于 express v 4.13.4,执行此操作时会引发错误。

res.status(error_code).send(msg);

说您在发送后无法设置标题。

于 2016-03-04T07:02:37.723 回答