首页 > 解决方案 > 当我在项目中包含 express-handlebar 时,应用程序在 heroku 上崩溃,但在本地工作

问题描述

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

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

标签: javascriptnode.jsexpressherokuexpress-handlebars

解决方案


对象字面量中的扩展运算符是在 Node.js v8.3.0 中引入的。看起来该应用程序在 Heroku 上的旧版本 Node.js 上运行。由于您提到该应用程序在本地运行,因此很明显开发和生产环境没有使用相同版本的 Node.js。您应该指定应用程序用于 Heroku 以在部署中使用的 Node.js 版本(应该是 v10+,因为express-handlebars v5.0.0放弃了对 Node 10 以下版本的支持) 。package.json

来自 Heroku 的 Node.js 部署文档

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


推荐阅读