我正在做一个个人项目,我真的需要一些帮助
我有这个错误,我不明白为什么:(
下面是我的代码:
//authRoutes.js
const { Router } = require('express');
const authController = require('../controllers/authController');
const { requireAuth } = require('../middleware/authMiddleware');
var Post = require('../models/post')
const router = Router();
router.use(function(req,res, next){
res.locals.user = req.user;
next();
});
router.get('/signup', authController.signup_get);
router.post('/signup', authController.signup_post);
router.get('/login', authController.login_get);
router.post('/login', authController.login_post);
router.get('/logout', authController.logout_get);
router.get("/home", function (req, res) {
res.render("home");
});
router.get("/about", function (req, res) {
res.render("about");
});
router.get("/", requireAuth, function(req,res){
Post.find({userID:req.user._id}).exec(function(err, posts){
if(err){
console.log(err);
}
res.render("posts",{posts:posts})
})
})
router.get("/add", requireAuth, function(req,res){
res.render("addpost")
})
字符串
在我尝试向数据库添加新帖子之前,一切都运行得很好
这是导致错误的代码部分:
router.post("/add",requireAuth, function(req,res){
var newPost = new Post({
title:req.body.title,
content:req.body.content,
userID:req.user._id
})
newPost.save(function(err,post){
if(err){
console.log(err)
res.redirect("/posts")
}
})
})
module.exports = router;
型
有人能帮帮我吗?
5条答案
按热度按时间krugob8w1#
错误是因为在这里:
字符串
你试图访问“user._id”,但是user里面没有“_id”,所以检查一下user里面有什么。
wlp8pajw2#
毫不夸张地说,它就是它所说的那样
无法读取undefined的属性(阅读“_id”)
这意味着
req.user
(req对象中的对象user)中没有_id
属性。看起来你没有发送_id
(也许你的负载使用的是id
而不是_id
?)你能和我们分享你的载荷吗?tez616oj3#
看起来好像req.user是未定义的,这就是它给你那个错误的原因。试着找出你从哪里得到你的身份证!:)
a8jjtwal4#
这里是user.js
字符串
2cmtqfgy5#
字符串
而不是将
"userId"
设置为req.user._id,
设置为“_id
”即
型
您可能还希望使用
.findOne()
而不是型
即