我对快速(连接)中间件有疑问。 我要做的是下载DoubleClick Bid Manager报告,将其解析并处理到我自己的MongoDB数据库中。
我的路线如下:
app.route('/v1/spends/')
.get(dbmPolicy.isAllowed, buckets.read, buckets.check, reports.create, buckets.process, reports.update);
buckets.read
从Google云端存储中读取文件时,buckets.check
会检查报告是否已经处理到MongoDB中,reports.create
会创建包含csv元数据的报告。 buckets.process
处理驻留在csv内部的数据,reports.update
更新先前创建的报告,如果一切顺利完成的话。
当我发现测试上述过程非常困难时,我开始怀疑这是否是实现流程链的正确方法。如果这是正确的方法,我如何单独测试每个中间件功能的行为?
此致
答案 0 :(得分:1)
您可能需要查看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);
});
});