Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Create React App和Node/Express部署到Heroku:EADDRNOTAVAIL_Node.js_Reactjs_Express_Heroku_Create React App - Fatal编程技术网

Node.js 使用Create React App和Node/Express部署到Heroku:EADDRNOTAVAIL

Node.js 使用Create React App和Node/Express部署到Heroku:EADDRNOTAVAIL,node.js,reactjs,express,heroku,create-react-app,Node.js,Reactjs,Express,Heroku,Create React App,我使用Facebook的Create React应用程序模板和Nodejs/Express构建了一个MERN堆栈,在部署时会产生错误。我正在使用 首先,当我在为本地主机配置代理后部署它时,我的应用程序只会显示“无效主机头”。并建议指定主机,甚至危险地禁用主机检查;我做了这两件事,错误#1消失了,但#2出现在我的.env.development文件中,文件名为HOST=my heroku app.herokuapp.com(这是错误的吗?)。 (我也尝试手动禁用主机检查,但这也导致了我的下一个错误

我使用Facebook的Create React应用程序模板和Nodejs/Express构建了一个MERN堆栈,在部署时会产生错误。我正在使用

  • 首先,当我在为本地主机配置代理后部署它时,我的应用程序只会显示“无效主机头”。并建议指定主机,甚至危险地禁用主机检查;我做了这两件事,错误#1消失了,但#2出现在我的.env.development文件中,文件名为
    HOST=my heroku app.herokuapp.com
    (这是错误的吗?)。 (我也尝试手动禁用主机检查,但这也导致了我的下一个错误。)

  • 现在我刚刚得到一个Heroku应用程序错误,日志如下:

    2018-03-04T03:02:49.270931+00:00 heroku[web.1]: - Restarting
    2018-03-04T03:02:49.271285+00:00 heroku[web.1]: - State changed from up to starting
    2018-03-04T03:02:04.000000+00:00 app[api]: - Build succeeded
    2018-03-04T03:02:50.294779+00:00 heroku[web.1]: - Stopping all processes with SIGTERM
    2018-03-04T03:02:50.404316+00:00 heroku[web.1]: - Process exited with status 143
    2018-03-04T03:02:57.240490+00:00 heroku[web.1]: - Starting process with command `react-scripts start`
    2018-03-04T03:03:01.011562+00:00 heroku[web.1]: - Process exited with status 1
    2018-03-04T03:03:01.038935+00:00 heroku[web.1]: - State changed from starting to crashed
    2018-03-04T03:03:01.040756+00:00 heroku[web.1]: - State changed from crashed to starting
    2018-03-04T03:03:00.918201+00:00 app[web.1]: - Could not find an open port at myapp.herokuapp.com.
    2018-03-04T03:03:00.918218+00:00 app[web.1]: - Network error message: listen EADDRNOTAVAIL 54.235.183.213
    2018-03-04T03:03:11.873080+00:00 heroku[web.1]: - State changed from starting to crashed
    2018-03-04T03:03:11.856257+00:00 heroku[web.1]: - Process exited with status 1
    2018-03-04T03:03:14.126300+00:00 heroku[router]: - at=error code=H10 desc="App crashed" method=GET path="/" host=mysite.herokuapp.com request_id=a688b1cb-d756-4201-a056-25d65ad13de1 fwd="ip_of_my_site" dyno= connect= service= status=503 bytes= protocol=https
    
    这是我设置服务器的代码

    const port = process.env.PORT || 3001;
    //starts the server and listens for requests
    app.listen(port, function () {
        debug(`api running on port ${port}`);
    });
    
  • 我按照这里的建议试过了,但运气不好

    如何解决heroku中的此错误?如果我需要提供任何其他信息,请告诉我。谢谢

    编辑:package.json

    {
      "name": "my_project",
      "version": "0.1.0",
      "private": true,
      "proxy": "http://localhost:3001/",
      "dependencies": {
        "@sendgrid/mail": "^6.2.1",
        "async": "^2.6.0",
        "aws-sdk": "^2.205.0",
        "axios": "^0.14.0",
        "body-parser": "~1.17.1",
        "cookie-parser": "~1.4.3",
        "cors": "^2.8.4",
        "debug": "^2.6.9",
        "dotenv": "^5.0.1",
        "express": "~4.15.2",
        "express-fileupload": "^0.4.0",
        "font-awesome": "^4.7.0",
        "foreman": "^2.0.0",
        "history": "^4.7.2",
        "marked": "^0.3.17",
        "milligram": "^1.3.0",
        "milligram-react": "0.0.0",
        "mongodb": "^2.2.35",
        "mongoose": "^4.13.11",
        "morgan": "~1.8.1",
        "nodemailer": "^4.6.0",
        "nodemon": "^1.17.1",
        "react": "^16.2.0",
        "react-bootstrap": "^0.32.1",
        "react-dom": "^16.2.0",
        "react-fontawesome": "^1.6.1",
        "react-icons": "^2.2.7",
        "react-onclickoutside": "^6.7.1",
        "react-router": "^4.2.0",
        "react-router-dom": "^4.2.2",
        "react-scripts": "1.0.17",
        "react-table": "^6.8.0",
        "sendgrid-web": "0.0.5",
        "serve-favicon": "~2.4.2",
        "supports-color": "^5.3.0"
      },
      "scripts": {
        "start": "react-scripts start | node server.js",
        "start-dev": "set DEBUG=* & nodemon server.js",
        "build": "react-scripts build",
        "test": "react-scripts test --env=jsdom",
        "eject": "react-scripts eject"
      }
    }
    

    请发布您的
    包.json
    文件。@Daniel我已经发布了。就在
    脚本“
    上方,您需要添加
    “引擎”:{“节点”:“npm”:
    。每当Heroku启动应用程序时,它都会读取我们的
    包.json
    文件,查看是否有任何版本供它使用,并且无论何时部署应用程序,它都会使用该版本。否则,Heroku倾向于使用较旧版本的
    节点
    npm
    ,如果不是您的版本,应用程序将停止运行另外,我认为您的开始脚本中包含的内容太多了,只需执行:
    “scripts”:“node server.js”
    ,虽然通常是它的
    索引.js
    。你创建了
    .gitignore
    文件吗?@Daniel感谢你的回复。我按照你说的做了,并用我的版本添加了引擎,我将脚本编辑为node server.js。我在heroku关于EADDRNOTAVAIL的日志中发现了一个应用程序崩溃和相同的错误(因为我使用的是heroku nodejs构建包,所以我认为我的开始脚本并不重要).我有一个.gitignore文件,尽管我确保了我的.env.development文件不在,gitignore.So中,所以我在这里的想法是一个消除过程。感谢您坚持到底。我注意到您有一个
    const host=process.env.host | |“0.0.0”
    。您需要这个吗?似乎与IP地址有冲突ess.您在没有那行代码的情况下尝试过吗?我知道我们需要动态端口绑定来部署到Heroku,但我认为您不需要动态主机绑定。