【问题标题】:Locomotivejs Check MongoDB connection before all actionsLocomotivejs 在所有操作之前检查 MongoDB 连接
【发布时间】:2013-09-13 03:45:44
【问题描述】:

在通过 LocomotiveJS 服务器对其进行任何查询之前,我想检查 MongoDB 连接并重新连接到它(如果它未处于“已连接”状态)。一种可能的方法是将它添加到之前的过滤器中。有没有办法为所有控制器定义一个前置过滤器?

【问题讨论】:

    标签: express mongoose locomotivejs


    【解决方案1】:

    我相信您可以使用 express(并且 LocomotiveJS 就在其中)处理请求的方式。

    在您的 config/environments/all.js 中(所有 this.use 声明开始之前的最佳位置)

    this.use(function(req, res, next) {
        if (!isMongoInConnectedState()) {
            setMongoToConenctedState();
        }
        next();
    });
    

    这样,每次向服务器发出的请求都会调用该函数。调用 next() 只会传递对下一个处理程序(在您的情况下为机车控制器)的请求的处理。

    您还可以指定应调用此检查函数的请求:

    this.get(/^\/admin\/.*/, function(req, res, next) {
        if (!isMongoInConnectedState()) {
            setMongoToConenctedState();
        }
        next();
    });
    

    这里只检查 /admin/* GET urls。

    运行 this.use 或 this.get 函数的顺序很重要 - 在请求处理期间将首先调用第一个声明的处理程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 2015-05-30
      • 2011-01-12
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 2013-02-21
      相关资源
      最近更新 更多