如何从路线中获取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> 

它工作