ExpressJS-无法获取有关更新用户的数据

时间:2018-11-02 10:43:04

标签: javascript node.js express

我想用新数据在User模型中创建一个体验数组,问题是我没有在exec函数中保存数据,因此可以在前端将新数据推送到数组中。这就是我到目前为止所得到的。

router.post('/:username/experience', function(req, res) {
const username = req.params.username;

User.findOneAndUpdate(
    username, {
        $push: {
            experience: req.body
        }
    }, {
        safe: true,
        upsert: true
    })
    .exec(function (err, data) {
        console.log(data, "------>");
    });
})

这是我的体验架构,在用户模型中称为“ experienceSchema”。

const ExperienceSchema = new Schema({
    title: {
        type: String,
        required: true
    },
    company: {
        type: String,
        required: true
    },
    from: {
        type: Date,
    },
    to: {
        type: Date,
    },
    workingNow: {
        type: Boolean,
        default: false
    },
    description: {
        type: String
    }
}, {
    usePushEach: true
})

1 个答案:

答案 0 :(得分:1)

由于findOneAndUpdate返回原始文档(更新前的状态),因此您需要在选项中添加new: true才能获取更新的文档。

选项:

{
  safe: true,
  upsert: true,
  new: true
}