我试图有一个变量,我的节点项目中的所有控制器都可以访问。目前在一个控制器中,我有:

        var ua = req.headers['user-agent'];
        var isMobile = "no";
        if(/mobile/i.test(ua))
            isMobile="yes";


复制所有我的控制器的所有内容并将isMobile变量传递给视图是没有意义的。我想一次设置isMobile的值,然后将其传递到我想从控制器发送的任何位置。

有没有一种简单的方法来执行此操作,而不是将这4行代码复制粘贴到每个控制器中?

谢谢

最佳答案

您将为此使用Sails策略:

// /api/policies/isMobile.js
module.exports = function(req, res, next) {
   var ua = req.headers['user-agent'];
   req.isMobile = /mobile/i.test(ua);
   next();
}




// /config/policies.js
module.exports.policies = {
'*': 'isMobile'
};


这将在每次控制器操作之前运行代码,并使您可以访问所有自定义控制器代码中的req.isMobile var。

关于node.js - Node JS中所有 Controller 上的全局变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21899650/

10-09 22:18