node.js - 如何在 Express/node js 中发送错误响应?

标签 node.js express

我有 express 服务器。当我发送获取请求时,我使用中间件功能授权来检查数据库中该用户的 token 。但是,我有一个问题:当我尝试发送响应错误时,我的响应向我发送了一个空对象,但 console.log 显示了错误!我究竟做错了什么???这是我的代码:

const auth = async(req,res,next)=>{
try {
    const token = req.header('Authorization').replace('Bearer ','')
    const decode_token = jswt.verify(token,'mytoken')
    const user =await User.findOne({"_id": decode_token._id, "tokens.token":token})


    if (!user){
        throw new Error('Please autorizate')
    }

    req.token = token
    req.user = user

    next()
} catch (error) {
    console.log(error)
    res.status(401).send({"err":error})
}

}

最佳答案

在接收错误时发送消息时出现问题。

如果要发送短信,请将字符串传递给 send 函数,或使用 json 函数发送 JSON 对象。

引用:official express site .

示例:

{
   console.log(error)
   res.status(401).send("Bad login")
}

{
   console.log(error)
   res.status(401).json({error: "Bad login"})
}

关于node.js - 如何在 Express/node js 中发送错误响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59194515/

相关文章:

javascript - 从配置读取的多个 FOR var 循环问题

javascript - 根据属性值对 JSON 数组进行排序

javascript - 将带有 Promise 的对象数组转换为普通数组

node.js - Azure 上的 Express App 无法加载静态文件,状态 500

node.js - Sequelize 1.7.3 中的时间戳

ios - Google Cloud 功能中仅接收部分 Apple 订阅通知

javascript - Meteor Npm.require() 在父目录中找不到文件

node.js - 如何向前端js传递/使用req.params

javascript - 如何处理直接子路由中的数据

node.js - 创建外部模块时 typescript 类型不匹配