mongoosejs:执行user.save()方法将数据保存到mongodb时出错
当dbUser在同一实例中实例化并给定值时,可以调用函数dbUser.save将数据输入localhost:mongodbmongoosejs:执行user.save()方法将数据保存到mongodb时出错,mongoose,Mongoose,当dbUser在同一实例中实例化并给定值时,可以调用函数dbUser.save将数据输入localhost:mongodb var gmailUserSchema = new mongoose.Schema({ displayName: String, emails: [ { value: String } ], name: { familyName: String, givenName: String } }) // compiling our schema into a Model. v
var gmailUserSchema = new mongoose.Schema({
displayName: String,
emails: [ { value: String } ],
name: { familyName: String, givenName: String }
})
// compiling our schema into a Model.
var gmailUser = mongoose.model('gmailUser', gmailUserSchema);
var dbUser = new gmailUser ({
displayName: 'profile.displayName',
emails: [{value: 'profile.emails'}] ,
name: { familyName: 'profile.familyName',
givenName: 'profile.givenName' }
});
dbUser.save(function (err) {
if (err) // ...
console.log('could not save');
});
但是如果我将值与构造函数分开放入'dbUser'中
// defining schema
var gmailUserSchema = new mongoose.Schema({
displayName: String,
emails: [ { value: String } ],
name: { familyName: String, givenName: String }
})
// compiling our schema into a Model.
var gmailUser = mongoose.model('gmailUser', gmailUserSchema);
var dbUser = new gmailUser;
dbUser = {
displayName: '1profile.displayName',
emails: [{value: '1profile.emails'}] ,
name: { familyName: '1profile.familyName',
givenName: '1profile.givenName' }
}
dbUser.save(function (err) {
if (err) // ...
console.log('could not save');
});
我在编译时遇到以下错误:
dbUser.save(function (err) {
^
TypeError: Object #<Object> has no method 'save'
at Object.<anonymous> (/Users/apple/Documents/herokuApp/onlymongoose-3.js:65:8)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
dbUser.save(函数(err){
^
TypeError:对象#没有方法“保存”
at对象。(/Users/apple/Documents/herokuApp/onlymongose-3.js:65:8)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
执行此操作时,您正在替换原始dbUser对象:
var dbUser = new gmailUser;
dbUser = {
displayName: '1profile.displayName',
emails: [{value: '1profile.emails'}] ,
name: { familyName: '1profile.familyName',
givenName: '1profile.givenName' }
}
您可以通过执行以下操作来单独更新字段:
dbUser.displayName = '1profile.displayName';
dbUser.emails = [{value: '1profile.emails'}];
dbUser.name = { familyName: '1profile.familyName' };
dbUser.givenName = '1profile.givenName';