【发布时间】:2014-11-14 05:24:09
【问题描述】:
一直在试用 Sails.js,我正在编写一个从第三方 API 导入数据并保存到 MySQL 表中的应用程序。基本上,我正在尝试将数据同步到我的应用程序以进行进一步分析、更新我的记录或根据需要创建新记录。
我查看了 Sails 的 API,看到了查找、创建和更新记录的方法,但没有根据情况插入/更新记录的内置方法。我是否忽略了某些内容,还是需要我自己实现?
如果我必须自己实现,有谁知道插入/更新的良好设计模式吗?
这就是我认为的样子……
_.each(importedRecords, function(record){
MyModel.find({id: record.id}).exec(function findCB(err, found){
if(found.length){
MyModel.update(record.id, task).exec(function(err, updated){
if(err) { //returns if an error has occured, ie id doesn't exist.
console.log(err);
} else {
console.log('Updated MyModel record '+updated[0].name);
}
});
}else{
MyModel.create(record).exec(function(err, created){
if(err) { //returns if an error has occured, ie invoice_id doesn't exist.
console.log(err);
} else {
console.log('Created client record '+created.name);
}
});
}
});
});
我是朝着正确的方向前进,还是有更优雅的解决方案?
另外,我在这个应用程序中处理了很多不同的模型,这意味着在我的每个模型中重新创建这段代码。有没有办法可以扩展基础模型对象为所有模型添加此功能。
谢谢, 约翰
【问题讨论】:
标签: javascript sails.js