【发布时间】:2018-07-26 21:15:37
【问题描述】:
我有一个通过 Mongoose 的用户模型,我正在尝试创建一个简单的 CRUD API,从用户部分开始,问题是我的“索引”和“创建”路由似乎正在工作,但详细信息页面似乎不会接受传递给它的变量,并且我无法在页面上呈现内容。
我的用户模式现在非常简单,只是为了让 API 正常工作 (./models/user.js)
const userSchema = new Schema({
name: {
type: String,
maxlength: 50,
minlength: 2,
trim: true
}
})
可以工作的路由的控制器如下所示 (./controllers/user_controller.js)
exports.index = function(req, res, next) {
User.find({}, (err, users) => {
res.render('userindex', {users: users})
})
}
exports.new = function(req, res, next) {
newUser = new User({ name: req.body.name })
newUser.save((err, user) => {
if (err) res.send(err)
res.redirect('/users')
})
}
exports.addUser = function(req, res, next) {
res.render('newuser')
}
到目前为止,路由看起来像这样 (./routes/userRouter.js) 我确实认识到 add 和 new 的路线是相反的,它会被修复。
userRouter.get('/', userController.index)
userRouter.get('/new', userController.addUser)
userRouter.post('/add', userController.new)
userRouter.get('/:id', userController.detail)
唯一剩下的是坏掉的控制器:(./controllers/user_controller.js)
exports.detail = function(req, res, next) {
User.find({'_id': req.params.id}, (err, user) => {
if (err) res.send(err)
res.render('userdetail', {user: user})
})
}
以及似乎不会接收数据的模板。 (./views/userdetail.pug)
p #{user.name}
【问题讨论】:
标签: node.js mongodb express mongoose pug