Node.js应用因R10错误而崩溃

时间:2018-06-20 22:15:12

标签: node.js heroku nextjs

我正在尝试在Heroku上成功部署Node / React项目,并且经过数小时的调试问题(我是一名新开发人员),我认为我已经接近完成了,但是现在Heroku在部署方面存在一些问题。

对于背景,这是我的package.json文件,所以您知道我已经安装了什么:

{
  "name": "StarterApp",
  "version": "1.0.0",
  "engines": {
    "node": "10.4.1",
    "npm": "6.1.0"
  },
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "mocha",
    "dev": "node server.js",
    "build": "next build"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "4.16.3",
    "fs-extra": "^5.0.0",
    "ganache-cli": "^6.1.3",
    "mocha": "^5.2.0",
    "next": "^4.2.3",
    "next-routes": "^1.4.2",
    "node-gyp": "^3.7.0",
    "react": "^16.4.1",
    "react-dom": "^16.4.1",
    "rebuild": "^0.1.2",
    "semantic-ui-css": "^2.3.2",
    "semantic-ui-react": "^0.79.1",
    "sha3": "^1.2.2",
    "solc": "^0.4.24",
    "truffle-hdwallet-provider": "0.0.3",
    "web3": "^1.0.0-beta.34"
  }
}

这是我在server.js文件中所拥有的:

app.prepare().then(() => {
createServer(handler).listen(5000, (err) => {
if (err) throw err;
console.log('Ready on localhost:5000');
});

这是Heroku建议的代码看起来像(source):

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(Our app is running on port ${ PORT });
});

我遇到的问题是我不确定如何将已有的内容与Heroku希望使用的内容合并。我的代码是必需的,这样它才能与NextJS一起使用,而Heroku代码则与此无关。我该怎么做才能使两者一起工作?谢谢!

1 个答案:

答案 0 :(得分:0)

我明白了。我只是做了以下事情:

app.prepare().then(() => {
  const PORT = process.env.PORT || 3000;
  createServer(handler).listen(PORT, (err) => {
    if (err) throw err;
    console.log('Ready on localhost:5000');
  });

这样做可以让我同时使用NextJS和Heroku建议的代码。