在NodeJS中创建回复回调时如何避免重复我的代码?

时间:2015-01-16 23:10:42

标签: node.js

我正在寻找一种方法,可以避免在控制器的所有方法中重复下面的函数回调。

exports.findAll = function(request, reply) {
  function callback (error, data) {
    if (error) {
      return reply(error);
    }

    return reply(data);
  }
  users.findAll(callback);
};

我想创建一个仍然可以访问回复对象的方法,这样我就可以在所有控制器方法中调用它。

1 个答案:

答案 0 :(得分:1)

用户closure

var callback = function(reply) {
    return function(error, data) {
        if (error) {
            return reply(error);
        }

        return reply(data);
    }
};

您可以将其从控制器方法中删除,甚至可以放入单独的模块中,并使用如下:

exports.findAll = function(request, reply) {
    users.findAll(callback(reply));
};