节点异步库绑定此

时间:2012-02-17 20:16:24

标签: node.js asynchronous coffeescript

我正在使用异步库(https://github.com/caolan/async) 尝试使用mongoskin(https://github.com/guileen/node-mongoskin

执行多个数据库异步查询的节点上

问题在于使用像这样的地图功能

app.post '/events', (req, res) ->
  storage.events.getByUser req.session.authId, (events) ->
    async.map events, storage.codes.getCountByEvent, (err, results) ->
      res.send results

它将@绑定到getCountByEvent函数的全局命名空间,是否有任何具有异步库经验的人能够就解决此问题的最佳方法向我提供指导?

以下是storage.codes实施

的示例
class Codes
    constructor: (db) ->
        db.bind 'codes',
            getCountByEvent: (event, callback) ->
                @.find(event: event._id).toArray (err, res) ->
                    callback res.length

        return db.codes

exports.Codes = Codes

getCountByEvent之外调用async.map可以正常使用

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以创建绑定到getCountByEvent对象的storage.codes版本:

async.map events, storage.codes.getCountByEvent.bind(storage.codes), ...