javascript - 快速中间件的正确使用方法?

标签 javascript node.js mongodb express mean-stack

我有一个关于快速(连接)中间件的问题。 我想做的是下载 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/

相关文章:

java - 如何在java中的mongodb现有文档中插入内部文档?

typescript - Mongoose - 无法访问 createdAt

javascript - 显示有关选择特定值的数据

javascript - 附加一个字符串数组给我对象而不是用逗号分隔的字符串,我的代码和结果如下

node.js - 如何为 Angular 5/nodejs 启用 Access-Control-Allow-Origin?

javascript - 未定义的查询函数

php - javascript加密?

javascript - AngularJS - 从 Controller 控制 ngRepeat 数据

node.js - Webpack Node 全局模块

mongodb - Flask-login usermixin 类与 MongoDB