Express 4.14 - 如何使用自定义消息发送200状态?

lau*_*kok 19 httpresponse node.js express

如何在快递4.14中发送状态和消息?

对于:res.sendStatus(200);

我在浏览器上运行正常但我希望它能显示一条自定义消息,例如: 成功1

res.sendStatus(200);
res.send('Success 1');
Run Code Online (Sandbox Code Playgroud)

错误:

错误:发送后无法设置标头.

如果我做这个:

res.status(200).send(1);
Run Code Online (Sandbox Code Playgroud)

错误:

express deprecated res.send(status):改为使用res.sendStatus(status)

有任何想法吗?

Dim*_*man 43

您可以使用:

res.status(200).send('some text');
Run Code Online (Sandbox Code Playgroud)

如果要将数字传递给send方法,请先将其转换为字符串以避免弃用错误消息.

弃用是直接在send内发送状态.

res.send(200) // <- is deprecated
Run Code Online (Sandbox Code Playgroud)

BTW - 默认状态为200,因此您只需使用res.send('Success 1').仅对其他状态代码使用.status()

  • 您将得到“明确弃用的 res.send(status): 使用 res.sendStatus(status) 代替”请参阅上面我的编辑,谢谢。 (2认同)

rob*_*lep 6

如果您使用的是那个确切的代码,您不应该得到最后一个错误:

res.status(200).send('Success 1')
Run Code Online (Sandbox Code Playgroud)

我的猜测是您没有使用字符串“Success 1”,而是使用数字变量或值:

let value = 123;
res.status(200).send(value);
Run Code Online (Sandbox Code Playgroud)

触发警告。相反,请确保value字符串化:

let value = 123;
res.status(200).send(String(value));  
Run Code Online (Sandbox Code Playgroud)