【发布时间】:2019-09-10 15:16:01
【问题描述】:
你好,我是 nodejs 和 mongoose 的新手。 我在我的网络应用程序上工作,我试图让猫鼬 findByIdAndUpdate 不更新我的 mongoDB,我做错了什么? 我正在尝试更新令人兴奋的用户详细信息。
我尝试了很多解决方案来解决这个问题,比如很多查询,但没有一个有效。 我正在向邮递员发出帖子请求,试图更改此字段: 名 姓 用户名 电子邮件 电话 到路线: http://localhost:5000/api/users/5cbb60157b07f13ec88070c4
但我总是得到旧用户而不是更新用户作为响应
api/users :
const express = require('express');
const router = express.Router();
const User = require('../../models/User');
const bcrypt = require('bcryptjs');
const validateCreateUserInput = require('../../validation/createUser');
const passport = require('passport');
router.post('/:id', passport.authenticate('jwt', { session: false }), (req, res) => {
const userDetails = {};
if (req.body.firstName) userDetails.firstName = req.body.firstName;
if (req.body.lastName) userDetails.lastName = req.body.lastName;
if (req.body.username) userDetails.username = req.body.username;
if (req.body.email) userDetails.email = req.body.email;
if (req.body.phone) userDetails.phone = req.body.phone;
User.findByIdAndUpdate(
{ _id: req.params.id },
{ new: true },
{ $set: userDetails })
.then(user => {
res.json(user)
})
.catch(err => console.log(err));
})
module.exports = router;
用户模型:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const UserSchema = new Schema({
firstName: {
type: String,
required: true
},
lastName: {
type: String,
required: true
},
username: {
type: String,
required: true
},
password: {
type: String,
required: true
},
email: {
type: String,
required: true
},
phone: {
type: String,
required: true
},
createdAt: {
type: Date,
default: Date.now
},
updatedAt: {
type: Date,
default: Date.now
}
})
module.exports = User = mongoose.model('users', UserSchema);
我希望 mongoDB 中的数据会发生变化
【问题讨论】: