这很完美
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},
)
})
救命
您遇到的错误是因为您尝试将点表示法用作对象中的字段。相反,你应该这样做
app.post('/users', (req, res) => {
var myUid = req.body.uid;
var myObjectBody = req.body;
db.collection('users').update(
{uid: myUid},
myObjectBody,
{upsert: true},
)
})
使用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));
})
我刚把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},
)
})