[英]Correct format of mongo return document on updateOne using mongo node driver
[英]saving document in mongo using node
创建并保存模型记录
我的代码:
var mongoose= require('mongoose');
mongoose.connect("****");
var db = mongoose.connection;
db.on(‘error’, console.error.bind(console, 'connection error:'));
var personSchema = new mongoose.Schema({
name : String,
age : Number,
favoriteFoods :[String]
});
var Person = mongoose.model(‘Person’, personSchema);
var createAndSavePerson = function(done) {
var mr = new Person({
name: 'Mrdude',
age: 22,
favoriteFoods: ['Ice Creame', 'Grills']})
mr.save(function(err, mr) {
if(err) return console.error(err);
});
done(null, mr);
};
我找不到此错误
我收到“无法读取null的属性'名称'”错误
请指出我错了
您需要添加以下行:
personSchema.pre('save', function (next) {
// get the current date
var currentDate = new Date();
// change the updated_at field to current date
this.updatedAt = currentDate;
// if created_at doesn't exist, add to that field
if (!this.createdAt) {
this.createdAt = currentDate;
}
next();
});
const newPerson = new Person();
let name ='x'
let family = 'y'
.
.
.
Object.assign(newPerson, req.body, {
name: name,
});
newPerson.save((err, log) => {
if (err) return next(err)
});
var mongoose= require('mongoose');
mongoose.connect("****");
var db = mongoose.connection;
db.on(‘error’, console.error.bind(console, 'connection error:'));
var personSchema = new mongoose.Schema({
name : String,
age : Number,
favoriteFoods :[String]
});
var Person = mongoose.model(‘Person’, personSchema);
var createAndSavePerson = function(done) {
var mr = new Person({
name: 'Mrdude',
age: 22,
favoriteFoods: ['Ice Creame', 'Grills']})
mr.save(function(err,data) {
if(err)
{
done(err);
}
else
{
done(null, data);
}
});
};
现在工作正常,我在回调函数中犯了一个错误,因此无法访问属性。 我返回的是不正确的“先生”。
您将回调函数放置在错误的位置。
您done
是传递给createAndSavePerson
回调函数,因此save
完成后应调用它。
var mongoose= require('mongoose');
mongoose.connect("****");
var db = mongoose.connection;
db.on(‘error’, console.error.bind(console, 'connection error:'));
var personSchema = new mongoose.Schema({
name : String,
age : Number,
favoriteFoods :[String]
});
var Person = mongoose.model(‘Person’, personSchema);
var createAndSavePerson = function(done) {
var mr = new Person({
name: 'Mrdude',
age: 22,
favoriteFoods: ['Ice Creame', 'Grills']})
mr.save(function(err, mr) {
return done(err, mr);
});
// Wrong position
// done(null, mr);
};
// Call function when you need
createAndSave((err, data) => {
if (err) console.log(err);
else console.log(data);
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.