如何从路线中获取Express的本地人
我有一个variables定义为我的app.js文件是这样的(应用程序真的很快):
app.locals.weather = { /* unimportant content here */ };
现在,我想从我的index.jspath访问这些信息,在ejs模板上打印。 我正在尝试这个,但它说这是未定义的:
var express = require('express'); var router = express.Router(); console.log(express.locals);
什么是正确的方法来做到这一点?
该文件指出:
您可以访问应用程序中呈现的模板中的局部variables。
换句话说,您不需要做任何特别的事情就可以将weather
传递给您的EJS模板,只要将它分配给app.locals
您就可以通过您的应用程序使其可用。
在app.locals下创build的所有密钥均可直接提供给模板。
在你的模板中,你不应该把它当作locals.weather
,而只能尝试weather
var express = require('express'); var app = express(); app.set('view engine', 'ejs'); app.set('views', __dirname + '/templates'); app.locals.weather = 'hot'; app.get('/', function(req, res){ console.log('received req'); res.render('hello'); }); app.listen(3000)
和ejs模板
<!DOCTYPE html> <div> hello ejs </div> <div> <%= weather %> </div>
它工作