nodejs+mysql中怎样的model才是好的model
2016-01-25 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517195
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
这么巧...我刚刚写了一段这个代码,而且写得我自己挺满意,share 一下其中的逻辑:1、 update 的封装function updateRecord(model, obj, criteria, callback){
var sql = 'update ?? set ? where ';
var options = [model.name, obj], link = '';
for (var key in criteria) {
options.push(key);
options.push(criteria[key]);
sql += link + '?? = ?';
link = ' and ';
}
sql += ';';
pool.query(sql, options, callback);
}
2、 绑定到模型上function setModel(name) {
var model = require('./'+name);
if ('mysql' === model.type) {
model.insert = function(obj, callback){
insertRecord(model, obj, callback);
};
model.remove = function(criteria, callback){
removeRecord(model, criteria, callback);
};
model.update = function(obj, criteria, callback){
updateRecord(model, obj, criteria, callback);
};
model.select = function(criteria, range, callback){
selectRecord(model, criteria, range, callback);
};
}
list[model.name] = model;
}
3、 使用的一个例子:model.get('item_family').update(newData, {id:oldData.id}, function(err, rows){
if (err) {
asynEcho(pin, err);
} else if (!rows || rows.length<1) {
asynEcho(pin, 'internal error: no data updated');
} else {
showList();
}
});
总的来说,适合你自己用的就是好的model。保留扩展的能力,但是不要一开始就试着写的大而全。
var sql = 'update ?? set ? where ';
var options = [model.name, obj], link = '';
for (var key in criteria) {
options.push(key);
options.push(criteria[key]);
sql += link + '?? = ?';
link = ' and ';
}
sql += ';';
pool.query(sql, options, callback);
}
2、 绑定到模型上function setModel(name) {
var model = require('./'+name);
if ('mysql' === model.type) {
model.insert = function(obj, callback){
insertRecord(model, obj, callback);
};
model.remove = function(criteria, callback){
removeRecord(model, criteria, callback);
};
model.update = function(obj, criteria, callback){
updateRecord(model, obj, criteria, callback);
};
model.select = function(criteria, range, callback){
selectRecord(model, criteria, range, callback);
};
}
list[model.name] = model;
}
3、 使用的一个例子:model.get('item_family').update(newData, {id:oldData.id}, function(err, rows){
if (err) {
asynEcho(pin, err);
} else if (!rows || rows.length<1) {
asynEcho(pin, 'internal error: no data updated');
} else {
showList();
}
});
总的来说,适合你自己用的就是好的model。保留扩展的能力,但是不要一开始就试着写的大而全。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |