我正在尝试制作na MVC Express.js应用程序框架,我想将控制器与模型分开。我可以在控制器或模型中轻松完成此操作。但我想将DB逻辑保留在模型中,并实际处理模型在控制器中返回的数据。
我有这段代码(我的控制器):
user.findById(78, function (err, result) {
console.log(result);
});
和实际的findByID实现(我的模型):
Start.prototype.findById = function(id, callback) {
var queryString = 'SELECT * FROM users WHERE userId=' + "'" + id + "'";
request.query(queryString, function (error, result) {
if (error) {
return;
}
callback (result);
});
这是对MsSQL服务器的查询,它会返回错误或结果。
我的问题是我如何在第一个代码示例中实际收到错误或结果。现在没有联系。在第二个代码中正确获取结果,但它永远不会返回到调用者函数。
经过一番尝试后,我想出了这个想法,这显然有效。这是正常的做法,还是我需要改变什么?
Start.prototype.findById = function(id, callback) {
var queryString = 'SELECT * FROM users WHERE userId=' + "'" + id + "'";
request.query(queryString, function (error, result) {
if (error) {
callback (error);
}
callback (result);
});
function doSomething(callback, id) {
user.findById(id, callback);
callback(result);
}
function foo(result) {
console.log(result);
}
doSomething(foo, 78);