编辑:错误输入代码修复。
我使用的是MEANJS堆栈,默认情况下它附带一个default.js文件,其中包含一些信息,如下所示:
module.exports = {
app: {
title: 'My App Title',
description: 'My apps description',
keywords: 'some keywords',
googleAnalyticsTrackingID: process.env.GOOGLE_ANALYTICS_TRACKING_ID || 'GOOGLE_ANALYTICS_TRACKING_ID',
}
};它通过swig模板引擎出现在应用程序模板中。例如:
<title>{{title}}</title> 指纹:
<title>My App Title</title>更改此值也会像预期的那样工作。
但是,如果我在自己的变量中添加了它,它就不会识别它,所以:
module.exports = {
app: {
title: 'My App Title',
description: 'My apps description',
keywords: 'some keywords',
googleAnalyticsTrackingID: process.env.GOOGLE_ANALYTICS_TRACKING_ID || 'GOOGLE_ANALYTICS_TRACKING_ID',
new_title: 'My Apps New Title',
}
};然后将视图更改为:
<title>{{new_title}}</title> 指纹:
<title></title>这些变量是否已注册/传递到我遗漏的其他地方?
发布于 2015-12-07 12:15:25
变量不能被识别,因为尽管在您的配置文件中定义了变量,但是您必须在express对象中设置它。
如果您访问位于express.js中的/config/lib/配置文件,您可以找到以下代码块:
/**
* Initialize local variables
*/
module.exports.initLocalVariables = function (app) {
// Setting application local variables
app.locals.title = config.app.title;
app.locals.description = config.app.description;
if (config.secure && config.secure.ssl === true) {
app.locals.secure = config.secure.ssl;
}
app.locals.keywords = config.app.keywords;
app.locals.googleAnalyticsTrackingID = config.app.googleAnalyticsTrackingID;
app.locals.facebookAppId = config.facebook.clientID;
app.locals.jsFiles = config.files.client.js;
app.locals.cssFiles = config.files.client.css;
app.locals.livereload = config.livereload;
app.locals.logo = config.logo;
app.locals.favicon = config.favicon;
...
};这就是它发生的地方。为了使您的配置变量可用在应用程序模板中,只需添加一行:
app.locals.new_title = config.app.new_title;
有关快捷应用局部变量对象的更多信息,您可以查看官方的速递文档这里。
发布于 2015-12-04 16:38:31
它是一个JSON对象。您在代码中使用了=而不是:。
module.exports = {
app: {
title: 'My App Title',
description: 'My apps description',
keywords: 'some keywords',
googleAnalyticsTrackingID: process.env.GOOGLE_ANALYTICS_TRACKING_ID || 'GOOGLE_ANALYTICS_TRACKING_ID',
new_title : 'My Apps New Title' //Here
}
};https://stackoverflow.com/questions/34091645
复制相似问题