ExpressJs不会在生产模式下缓存视图

时间:2017-01-01 14:47:18

标签: node.js express caching production-environment viewengine

ExpressJs设置为views时,我NODE_ENV没有缓存我的production时出现问题。我正在使用EJS template engine。这是我的代码:

npm脚本

"start": "set NODE_ENV=production && node ./bin/www"

app.js

console.log(app.get('env')) => logs production
console.log(app.get('view cache')) => logs undefined
app.set('view cache', true)
console.log(app.get('view cache')) => logs true

因此,当我将NODE_ENV环境变量设置为production ExpressJs时,似乎未启用视图缓存,但当我通过调用app.set('view cache', true)手动启用它时,它将会。根据{{​​3}},它应该默认启用视图缓存。

我测试了缓存是否有效,但只有当我手动启用它时才会这样做。

2 个答案:

答案 0 :(得分:0)

首先按NODE_ENV=production node app.js运行您的应用,如果是true,则应更改start中的package.json属性。

答案 1 :(得分:0)

我明白了。问题不在于ExpressJsnpm scripts,而在于我使用的shell命令。

使用console.dir时,我看到NODE_ENV设置为production,并且有额外的空格。将npm脚本更改为"start": "set NODE_ENV=production&&node ./bin/www"确实有效。