尝试.update()mongoDB时Express.js node.js语法错误

问题描述 投票:0回答:3

这很完美

app.post('/users', (req, res) => {
        console.log(req.body, req.body.uid)
    })

但是这会引发语法错误并崩溃。我的mongoDB连接正常。

app.post('/users', (req, res) => {
    var myUid = req.body.uid;
    db.collection('users').update(
        {uid: myUid},
        req.body,
        {upsert: true},
    )
})

救命

node.js mongodb express
3个回答
1
投票

您遇到的错误是因为您尝试将点表示法用作对象中的字段。相反,你应该这样做

app.post('/users', (req, res) => {
  var myUid = req.body.uid;
  var myObjectBody = req.body;
  db.collection('users').update(
      {uid: myUid},
      myObjectBody,
      {upsert: true},
  )
})

0
投票

使用Mongoose.js,这个图书馆让您的生活变得轻松。使用Mongoose.js,您的代码就会像这样。

///// routes.js
import User from './model';
app.put('/users', (req, res) => {
    User.findByIdAndUpdate(req.body.uid, req.body, {upsert:true, new:true})
    .then(updatedUser => res.json(updatedUser))
    .catch(err => next(err));
})

0
投票

我刚把req.body改成了一个对象

app.post('/users', (req, res) => {
    var myUid = req.body.uid;
    db.collection('users').update(
        {uid: myUid},
        {
         uid: req.body.uid
         name: req.body.name
         etc...
        },
        {upsert: true},
    )
})
© www.soinside.com 2019 - 2024. All rights reserved.