如何在内部调用快速导出方法?
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)
并非不可能,将不同请求处理程序的代码分开是明智的。在这种情况下,处理程序看起来更像是可以参数化并合并到一个函数中。以上是关于如何在内部调用快速导出方法?的主要内容,如果未能解决你的问题,请参考以下文章