我有一个关于快速(连接)中间件的问题。 我想做的是下载 DoubleClick Bid Manager 报告,将其解析并处理到我自己的 MongoDB 数据库中。
我的路线如下:
app.route('/v1/spends/')
.get(dbmPolicy.isAllowed, buckets.read, buckets.check, reports.create, buckets.process, reports.update);
其中buckets.read
从Google Cloud Storage读取文件,buckets.check
检查报告是否已被处理到MongoDB中,reports.create
创建包含 csv 元数据的报告。 buckets.process
处理驻留在 csv 内的数据,并且 reports.update
更新之前创建的报告(如果一切顺利)。
由于我发现测试上述流程非常困难,我开始怀疑这是否是实现流程链的正确方法。如果这是正确的方法,我如何单独测试每个中间件函数的行为?
问候,
最佳答案
您可能想查看Async包,特别是 waterfall方法。这样你就可以运行类似的东西:
app.get('/v1/spends', function(req, res) {
async.waterfall([
dbmPolicy.isAllowed,
buckets.read,
buckets.check,
reports.create,
buckets.process,
reports.update
], function (err, result) {
if (err) res.status(500).send(err);
res.status(200).send(result);
});
});
关于javascript - 快速中间件的正确使用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35944644/