在mongojs,当你这样做时:
var birds = db.birds.find(searchTerm, callback);
...如何将参数传递给回调?我试过绑定,如:
birds = db.birds.find(searchTerm, app.get('getBirds').bind(res));
......但无济于事。只是我想尝试传递GET路由的响应对象,以便回调可以使用res.send(结果)进行渲染。
另一个选项是设置app.set('res':res);并从回调中调用app.get('res') - 我不确定这是个好主意。它有效,但它不能很好地服从事件循环模型 - 我认为返回应用程序的请求可能代价高昂?任何帮助都将被感激地接受。 :)
答案 0 :(得分:1)
确定您要完成的任务:
您打算在服务器的响应中使用find
调用的结果吗?您可以将find
包装在一个函数中,该函数将响应作为参数,然后定义回调到find
并在其中访问响应。
例如(未经测试的代码,但这是主意):
// function called when a request is received
function getBirds(searchTerm, res) {
birds = db.birds.find(searchTerm, function(err, docs) {
// code in here will have access to res because it is in a closure
});
}
答案 1 :(得分:0)
通常通过将callback
函数调用包装在匿名函数中来执行此操作:
db.birds.find(searchTerm, function (err, birds) {
callback (err, birds, res);
});