当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}},它应该默认启用视图缓存。
我测试了缓存是否有效,但只有当我手动启用它时才会这样做。
答案 0 :(得分:0)
首先按NODE_ENV=production node app.js
运行您的应用,如果是true
,则应更改start
中的package.json
属性。
答案 1 :(得分:0)
我明白了。问题不在于ExpressJs
或npm scripts
,而在于我使用的shell命令。
使用console.dir
时,我看到NODE_ENV
设置为production
,并且有额外的空格。将npm脚本更改为"start": "set NODE_ENV=production&&node ./bin/www"
确实有效。