【发布时间】:2016-09-03 02:43:08
【问题描述】:
我有以下代码从 db (mongo) 中获取一些数据。
function getAllUsers(){
var UsersPromise = Q.defer();
UserSchema.find({}, function(err, data){
if(err){
UsersPromise .reject(err);
}else {
UsersPromise .resolve(data);
}
});
return UsersPromise .promise;
}
然后我修改每个模型。我根据用户的类型将某些字段添加到模型中。 (这工作正常)。
function buildUsers(users){
// my code iterates over users and adds
// properties as required.
// Working fine.
return users; // updated users.
}
现在我想将这些更新的模型保存回 mongo,这就是让我抓狂的地方。
function saveUsers(users){
// here, the users are received correctly. But the following line to save the users fails.
var SaveUsersPromise = Q.defer();
UserSchema.save(users, function(err, data){
if(err){
SaveUsersPromise .reject(err);
} else {
SaveUsersPromise .resolve(data);
}
});
return SaveUsersPromise .promise;
}
最后我将这些函数称为:
DB.connect()
.then(getAllUsers)
.then(buildUsers)
.then(saveUsers)
.catch(errorHandler);
在我致电UserSchema.save 之前,一切正常。可能是什么问题?
PS:我使用的是mongoose。
TIA。
【问题讨论】: