在Express中同时发送错误状态res.status和消息res.json

问题描述

我正在尝试根据前端输入的表单快速处理错误。我看到可以发送res.status(401)作为错误代码,也可以发送res.json({})作为发送错误消息,但不能同时发送。我应该在下面做什么同时发送两个

app.post('/verifyOTP',(req,res) => {
  const hash = req.body.hash;
  let [ hashValue,expires ] = hash.split('.');
  let Now = Date.Now();
    if (Now > parseInt(expires)) {
        return res.status(400).json({ error: 'Timeout. Please try again' })
    }
})

解决方法

您总是可以这样做

启用发送发送对象的功能:-当参数为数组或对象时,Express会以JSON表示形式进行响应:以获取更多参考信息express docs for send

如何结合.status and .send?:-设置响应的HTTP状态。它是Node的response.statusCode的可链接别名。以获取更多参考信息 express status docs

app.post('/verifyOTP',(req,res) => {
  const hash = req.body.hash;
  let [ hashValue,expires ] = hash.split('.');
  let now = Date.now();
    if (now > parseInt(expires)) {
        return res.status(400).send({ error: 'Timeout. Please try again' })
    }
})
,

docs中所述:

res.status(400).send({ error: 'Timeout. Please try again' })