Ros*_*ndr 3 javascript node.js express handlebars.js
我有一个带有 express-handlebars 的 nodejs 应用程序,我想为 CSS 和 Javascript 的“主机”地址等内容定义变量,这些内容当前正在导入到我在特定布局中调用 form 的 header.hbs 文件中。
我创建了一个 config.js 文件,它有许多我想设置的变量,我使用以下方法将其导入到 app.js 中:
var config = require('./config.js');
Run Code Online (Sandbox Code Playgroud)
但后来我迷失了去哪里。例如,我在想我是否可以做这样的事情:
<link href="{{config.csshost}}basev1.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
任何人都可以提供一些指针,除了每次加载模板时都声明这些变量之外,我感到很困惑。
您将设置应用程序本地人:
var app = express()
app.locals = {
config: config,
templateVar: 'test'
}
Run Code Online (Sandbox Code Playgroud)
编辑:
您的路线将如下所示:
app.get('/', function(req, res) {
res.render('index', {config: config});
})
Run Code Online (Sandbox Code Playgroud)
它的作用是更新express中的app.locals变量,如下所示:
app.locals = {
config: config
}
Run Code Online (Sandbox Code Playgroud)
然后可以通过以下方式在您的模板中访问所有app.local变量:
{{config}}
//which is really
app.locals['config']
Run Code Online (Sandbox Code Playgroud)
因此,在您配置 express 的 app.js 中,您将执行以下操作:
var app = express();
app.locals.config = require('./config')
app.get('/', function(req, res) {
return res.render('index')
})
Run Code Online (Sandbox Code Playgroud)