我想检查MongoDB连接并重新连接到它,如果它没有处于“已连接”状态,那么在使用LocomotiveJS服务器进行任何查询之前。一种可能的方法是在before过滤器中添加它。有没有办法为所有控制器定义一个前置过滤器?
答案 0 :(得分: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网址。
运行this.use或this.get函数的顺序很重要 - 在请求处理期间首先调用第一个声明的处理程序。