从玉石里面得到用户代理

我试图把我写的一个脚本写到玉石上,而且碰到了一个绊脚石

我需要从一个玉文件中访问用户代理。 这是我迄今为止所尝试的:

- var agent = req.headers['user-agent']; - var agent = headers['user-agent']; - var agent = navigator.userAgent; 

每次我从快递中得到一个500错误。 这甚至有可能吗?

我知道我可以在一个模块中做到这一点,并将其传递给渲染语句,但这意味着将它传递给每个渲染,因为它需要是全局的。

非常新的节点,并困惑。 感谢所以。

       

网上收集的解决方案 "从玉石里面得到用户代理"

只要写你自己的小中间件

 app.use(function(req, res, next) { res.locals.ua = req.get('User-Agent'); next(); }); 

把它放在你的app.router之前

 app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); // here app.use(function(req, res, next) { res.locals.ua = req.get('User-Agent'); next(); }); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); }); 

然后你可以在任何一个jade模板中使用uavariables(比如index.jade

 extends layout block content h1= title p Welcome to #{title} p=ua 

你可以把user-agent从快递传递给玉:(见这里 )

 app.get('/index', function(req, res){ res.render('home.jade', { locals: { useragent: req.getHeader('User-Agent') } }); res.end(); }); 

在你的玉文件中

 html body h1 #{useragent} script(type='text/javascript') var useragent = #{useragent};