通过我的函数获取数据库查询结果

时间:2015-12-18 15:14:06

标签: javascript express

我正在尝试制作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);

0 个答案:

没有答案