我试图有一个变量,我的节点项目中的所有控制器都可以访问。目前在一个控制器中,我有:
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/