NODE.JS:在EXPRESS保存请求数据时,CANNOT READ PROPERTY ‘ID‘ OF UNDEFINED

今天在写一个用户信息接口的时候,报错id字段没有定义,我用的postman进行mock。

cannnot read property “id” of undefinned

数据用户信息表的id字段为主键,自增,此接口为权限接口,登录时要携带token字符串。
采用jwt的方式生成token,利用中间件jsonwebtoken和express-jwt进行token的加密和解密

问题在于生成token的时候,payload里包含了id,解析后无法识别。

// 用户信息处理函数
const userinfosql = "select id, name, sex from users where id=?"
exports.userinfo = (req,res) => {

  // const id = ObjectId(req.user.id)
  console.log(req.auth);

  db.query(userinfosql, req.auth.id, (err, results) => {
    // 1. 执行 SQL 语句失败
    if (err) return res.cc(err)
  
    // 2. 执行 SQL 语句成功,但是查询到的数据条数不等于 1
    if (results.length !== 1) return res.cc('获取用户信息失败!')
  
    // 3. 将用户信息响应给客户端
    res.send({
      status: 0,
      message: '获取用户基本信息成功!',
      data: results[0],
    })
  })
}

console.log(req.user)也是undefined,跑去npm看了一下,才明白:

The decoded JWT payload is available on the request via the auth property.

才明白原来现在不用req.user了,用req.auth来获取解析后的数据。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渔舟唱晚@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值