node.js - 使用 Mongoose 和 Node.js 更新 MongoDB 中的数据
问题描述
当用户访问页面时,我正在尝试更新用户集合中的某些信息。
但是我的方法不起作用。任何人都可以帮助修复它。
app.get('/add-your-accommodation/apartment-type', (req, res, next) => {
if (req.isAuthenticated()) {
res.render('apartment-type.ejs')
} else {
res.render('login.ejs')
}
var id = req.params.id
if(mongoose.Types.ObjectId.isValid(id)) {
User.findByIdAndUpdate(id, {$set: {accomtype: 'house'}},{new: true})
}
});
解决方案
你req.params.id
是未定义的,因为在路由路径中没有提到它。你可以这样做,
app.get('/add-your-accommodation/apartment-type', (req, res) => {
if (!req.isAuthenticated()) {
return res.render('login.ejs')
}
res.render('apartment-type.ejs')
var id = req.user._id //since you're using passport (LocalStrategy)
if(mongoose.Types.ObjectId.isValid(id)) {
User.findByIdAndUpdate(id, {$set: {accomtype: 'house'}})
}
})
现在当你调用你的 API 时,这样做,
GET /add-your-accommodation/apartment-type
推荐阅读
- php - 如何将php登录表单链接到另一个网站
- python - 从文本文件中删除不符合条件的行
- java - Java 大十进制一半偶数错误?
- php - PHP mkdir() 不创建存档
- wordpress - 计数帖子具有特定的元键或值?
- ios - 在应用内打开原生 iOS 音频输出目的地选择器
- scala - 将 scala 数据框列组合成单个案例类
- angular - Angular 7 应用程序的生产路线因 Http 500 或 404 服务器错误而失败
- nativescript - 如何在 Nativescript 中使用 MediaFilePicker 和 PhotoEditor 插件
- javascript - 如何计算混合费用?