目前我在学习sails,现在有个更新数据库的需求,就是从excel文件读取数据,根据所读取的数据更新数据库。基本思路是每读取出一条数据后更新数据库。代码如下:
result.forEach(function(userPreference){ // 读取出来的数据类似 { email:‘test@qq.com’, data:‘test’} 这样的json对象
User.findOne({email:userPreference.email}).exec(function (err, finn){ //从User集合查找user对象
user=finn;
}
);
if(user){ //如果查找到则查找Preference集合的数据,将这两者关联起来
Preference.findone(user).exec(function (err,found) {
user.preferences.add(preference);
user.save(function(err) {
return res.serverError(err);
});
}
}
但是在执行过程,user的值总是为null。 我想原因是由于model.findOne方法是异步执行。请教一下正确的编程方式。