如何在内部调用快速导出方法?

Posted

技术标签:

【中文标题】如何在内部调用快速导出方法?【英文标题】:How to call an express export method internally? 【发布时间】:2016-01-26 10:11:30 【问题描述】:

这是我第一个很好地响应 http 调用的方法:

exports.create = function(req, res, next)
  var submission = new task(req.body);  

   submission.save(function(err)
     if(err)
        return next(err);
     else 
        res.json(submission);
    
  );

;

现在,我想从同一个文件中定义的方法调用它:

exports.evaluate = function(req, res, next)
  if(req.body.value == x)
    // need to call the above method
   this.create(req.body.someobject)
  
;

如何做到这一点?

【问题讨论】:

【参考方案1】:

这样做的正确方法是定义一个不是路由处理程序的通用方法并从处理程序中调用它。

var _create = function (object, callback) 
  var submission = new task (object);
  submission.save(callback);


exports.create = function(req, res, next)
  _create(req.body, function(err)
     if(err)
        return next(err);
     else 
        res.json(submission);
    
  );
;

exports.evaluate = function(req, res, next)
  if(req.body.value == x)
    // need to call the above method
    _create(req.body.someobject, function (err) 
      // Send response
    );
  
;

【讨论】:

通过显式声明create 从评估中调用create(req, res, next) 并非不可能,将不同请求处理程序的代码分开是明智的。在这种情况下,处理程序看起来更像是可以参数化并合并到一个函数中。

以上是关于如何在内部调用快速导出方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在内部编码推送通知

新的 FragmentTransaction commitNow() 在内部如何工作?

Java 分析器在内部是如何工作的?

nodejs如何调用函数?

PHP 的“未设置”构造如何在内部工作?

如何在 CSS 中记住边距在边框之外,而在内部填充 [关闭]