我最近一直在试验Mongoose和NodeJs,我很感激这里的一些帮助。我们假设我有一个Mongoose Schema,如下所示
var mongoose = require('mongoose');
var findOrCreate = require('mongoose-findorcreate')
var userSchema = mongoose.Schema({
email: String,
password: {type: String, default: ''},
name: String,
createdDate: {type: Date, default: Date.now},
updatedDate: {type: Date, default: Date.now},
rawDataFromOauth: {type: Array}
});
userSchema.plugin(findOrCreate);
var user = mongoose.model('user', userSchema);
module.exports = {
user: user
};
我将发送一个POST请求,其中包含一个用户JSON对象,如下所示
{
"email": "blahblah@gmail.com",
"name": "i am blah blah",
}
Q1 有没有什么办法可以一次性将这个JSON转换为mongoose模式?目前我正在使用req.body.user.email,req.body.user.name等一个接一个地映射它,这真的很痛苦。
注意:实际情况有大约20多个变量。
Q2 我的目标是在这个Mongoose模型上使用https://github.com/drudge/mongoose-findorcreate提供的findOrCreate()。我试着做以下
new userModel.((req.body.user)).findOrCreate({email: req.user.email}, function (err, user){
//do some magic here
});
和
userModel.hydrate((req.body.user)).findOrCreate({email: req.user.email}, function (err, user){
//do some magic here
});
我碰到了这个错误
TypeError: (intermediate value).findOrCreate is not a function
和
TypeError: userModel.hydrate(...).findOrCreate is not a function
非常感谢任何帮助。