【问题标题】:TypeError: Cannot read properties of undefined (reading '_id') (nodejs)TypeError:无法读取未定义的属性(读取\'_id\')(nodejs)
【发布时间】:2022-09-23 12:16:08
【问题描述】:

我试图从我的数据库中获取用户数据,但我得到的是 req.body 未定义,我无法解决问题,我需要帮助。

错误:TypeError:无法读取未定义的属性(正在读取 \'_id\')

我的代码:

用户.js

const express = require(\"express\");
const router = express.Router();
const { requireSignin, authMiddleware } = require(\"../controllers/auth\");
const { read } = require(\"../controllers/user\");

router.get(\"/profile\", requireSignin, authMiddleware, read);

module.exports = router;

Auth.js

exports.authMiddleware = (req, res, next) => {
  const authUserId = req.user._id;
  console.log(authUserId);
  User.findById({ _id: authUserId }).exec((err, user) => {
    if (err || !user) {
      return res.status(400).json({
        error: \"User not found\",
      });
    }
    req.profile = user;
    next();
  });
};

exports.requireSignin = expressjwt({
  secret: process.env.JWT_SECRET,
  algorithms: [\"HS256\"],
});

标签: node.js express


【解决方案1】:

在 express-jwt 的 v6 中,req.user 被 req.auth 替换,如 migration notes 中所述:

解码后的 JWT 有效负载现在以 req.auth 而不是 req.user 的形式提供

【讨论】:

    【解决方案2】:

    你可以放一个Optional Chaining 运算符吗?为了避免“读取未定义错误的属性”。

    const authUserId = req.user._id;
    

    【讨论】:

      猜你喜欢
      • 2022-07-27
      • 2013-09-03
      • 2019-09-13
      • 1970-01-01
      • 2022-11-29
      • 2017-03-06
      • 2020-11-22
      • 2014-12-24
      • 2020-09-03
      相关资源
      最近更新 更多