这是我第一次使用Mongoose并且保存功能对我不起作用......
在用户模型文件中:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var User = mongoose.model('User', {
name: Schema.Types.Mixed,
gender: String,
email: String
});
module.exports = User;
在我的用户控制器文件中:
// Create a user
router.post('/', function(req, res) {
var user = new User(req.body);
user._id = mongoose.Types.ObjectId();
user.save(function(err) {
if (err) {
return res.status(500).json({
error: "Error creating user: " + err
});
}
return res.status(200).end();
});
});
我尝试了所有内容,但我无法将用户对象保存到数据库中:" id未定义" 在db上,_id是一个ObjectId。
感谢。
答案 0 :(得分:1)
mongoose.model
receives collection name and a Schema
as arguments,而不是常规对象。
所以你应该使用以下代码:
var schema = new mongoose.Schema({
name: Schema.Types.Mixed,
gender: String,
email: String
});
var User = mongoose.model('User', schema);
答案 1 :(得分:0)
也许我们可以改变代码结构&&删除" user._id",请测试此代码:
*模型文件:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
name: Schema.Types.Mixed,
gender: String,
email: String
});
module.exports = mongoose.model('User', UserSchema);
*控制器文件:
// Create a user
router.post('/', function(req, res) {
var user = new User(req.body);
user.save(function(err) {
if (err) {
return res.status(500).json({
error: "Error creating user: " + err
});
}
return res.status(200).end();
});
});