当我在项目中包含express handler时,应用程序在heroku上崩溃了,但在本地工作



这是我添加到应用程序的代码,导致它在Heroku服务器上崩溃,删除这些代码会导致应用程序在Heroki上正常工作我的应用程序在本地上使用这些代码

const exphbs  = require('express-handlebars')({extname:"hbs"})
app.engine('hbs', exphbs);
app.set('view engine', 'hbs');

here is the logs below
[![enter image description here][1]][1]

[1]: https://i.stack.imgur.com/h5Mer.png

Node.js v8.3.0中引入了对象文字中的扩散运算符。看起来该应用程序运行在Heroku上的Node.js的旧版本上。既然你提到该应用程序在本地工作,那么很明显,开发和生产环境没有使用相同版本的Node.js。你应该指定应用程序在package.json中使用的Node.jss版本(应该是v10+,因为express handlers v5.0.0放弃了对Node 10以下版本的支持(,以便Heroku在部署中使用。

来自Heroku的Node.js部署文档:

保持开发环境和生产环境尽可能相似是个好主意。因此,请确保Node.js的本地版本与您告诉Heroku在package.json文件中使用的版本相匹配。要检查您在本地运行的版本,请在命令行中键入node --version

最新更新