【发布时间】:2017-09-27 04:12:20
【问题描述】:
我正在使用 Node (Express/Mongoose) 和 MongoDB 学习 React,现在一切似乎都按预期工作,但我遇到了一个大问题:
var userSchema = new mongoose.Schema({
login: { type: String, required: true, unique: true },
password: { type: String, required: true }
})
app.post('/registerUser', function (req, res) {
res.send(req.body)
db.on('error', console.error.bind(console, 'connection error:'))
// save user using model
var user = new UserModel(req.body)
user.save()
}
每次我发布登录名和密码时,它只会保存一次,然后就结束了。
例如,如果我发送 POST 三次:
login=admin&password=admin
login=admin2&password=admin2
login=admin3&password=admin3
db.users.count() 显示1 并且只有第一个 POST (admin:admin) 在数据库中。其余的被忽略。我正在运行 console.logs 来查看问题所在,但每个 POST 的 _id 都不同,但不知何故,在第一个 POST 之后不保存。我在想save 可能有问题,也许我应该使用update 或create 之类的东西,但我看过的每个教程和文档都说要使用save。
当我删除该字段并且集合为空然后发送 POST 时,它会立即保存,然后忽略所有其他 POST(第二个、第三个等)。
我做错了什么?我想在我的收藏中拥有 1 个以上的用户 :(
[编辑]
看起来我的 ID 是“即时”创建的,所以 MongoDB 应该根据文档触发 insert:https://docs.mongodb.com/manual/reference/method/db.collection.save/#behavior(我也不确定它现在在做什么,因为它看起来不像update 要么 :/)
【问题讨论】: