Nodejs传递res.end()作为回调不起作用

时间:2014-03-31 20:30:12

标签: node.js connect

您好我正在使用connect并拥有:

var app = connect()
 .use(connect.static(directory))
 .use(function(req,res) {
  switch (req.url)
  {
   case '/query':
    exportFunc.query("myquery", res.end);
    break;
  }
}

-- exportFunc.js --
exports.query= function(query, cb) {
 queryServer(query, cb);
}

var queryServer = function(query, cb) {
 cb("MyQueryResult");
}

但是我得到一个错误,即cb无法确定它是什么对象。我是否需要将此对象转换为正确的类型?

1 个答案:

答案 0 :(得分:7)

您没有使用正确的上下文调用该函数(函数中为this)。你可以通过替换

来解决它
 exportFunc.query("myquery", res.end);

 exportFunc.query("myquery", res.end.bind(res));

 exportFunc.query("myquery", function(){ res.end() });