Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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 如何在heroku上部署应用程序-ReactJS&;快车_Node.js_Mongodb_Reactjs_Express_Heroku - Fatal编程技术网

Node.js 如何在heroku上部署应用程序-ReactJS&;快车

Node.js 如何在heroku上部署应用程序-ReactJS&;快车,node.js,mongodb,reactjs,express,heroku,Node.js,Mongodb,Reactjs,Express,Heroku,我试图在Heroku上部署我的应用程序,但当我打开应用程序时,它显示: Application error An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command Heroku l

我试图在Heroku上部署我的应用程序,但当我打开应用程序时,它显示:

Application error
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
Heroku logs --tail
我觉得它在端口5000上运行服务器,但我在端口3000上的客户端应用程序没有运行

MyProject/package.json:

{
  "name": "site-web-france",
  "version": "1.0.0",
  "scripts": {
    "client": "cd client && yarn start",
    "server": "nodemon server.js",
    "dev": "concurrently --kill-others-on-fail \"yarn server\" \"yarn client\"",
    "dev:server": "cd client && yarn build && cd .. && yarn start",
    "start": "node server.js",
    "heroku-postbuild": "cd client && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
  },
  "dependencies": {
    "body-parser": "^1.18.3",
    "express": "^4.16.3",
    "mongodb": "^3.1.1",
    "mongoose": "^5.2.6",
    "react-scripts": "^1.1.4"
  },
  "devDependencies": {
    "concurrently": "^3.5.0"
  }
}
{
  "name": "test",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^1.2.0-14",
    "@fortawesome/free-solid-svg-icons": "^5.1.0-11",
    "@fortawesome/react-fontawesome": "0.1.0-11",
    "mongodb": "^3.1.1",
    "mongoose": "^5.2.7",
    "react": "^15.6.1",
    "react-bootstrap": "^0.31.3",
    "react-dom": "^15.6.1",
    "react-google-auth": "^0.4.1",
    "react-router-dom": "^4.2.2",
    "react-router-hash-link": "^1.2.0",
    "react-scripts": "1.0.13",
    "video-react": "^0.9.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
  "proxy": "http://localhost:5000/"
}
MyProject/client/package.json:

{
  "name": "site-web-france",
  "version": "1.0.0",
  "scripts": {
    "client": "cd client && yarn start",
    "server": "nodemon server.js",
    "dev": "concurrently --kill-others-on-fail \"yarn server\" \"yarn client\"",
    "dev:server": "cd client && yarn build && cd .. && yarn start",
    "start": "node server.js",
    "heroku-postbuild": "cd client && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
  },
  "dependencies": {
    "body-parser": "^1.18.3",
    "express": "^4.16.3",
    "mongodb": "^3.1.1",
    "mongoose": "^5.2.6",
    "react-scripts": "^1.1.4"
  },
  "devDependencies": {
    "concurrently": "^3.5.0"
  }
}
{
  "name": "test",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^1.2.0-14",
    "@fortawesome/free-solid-svg-icons": "^5.1.0-11",
    "@fortawesome/react-fontawesome": "0.1.0-11",
    "mongodb": "^3.1.1",
    "mongoose": "^5.2.7",
    "react": "^15.6.1",
    "react-bootstrap": "^0.31.3",
    "react-dom": "^15.6.1",
    "react-google-auth": "^0.4.1",
    "react-router-dom": "^4.2.2",
    "react-router-hash-link": "^1.2.0",
    "react-scripts": "1.0.13",
    "video-react": "^0.9.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
  "proxy": "http://localhost:5000/"
}
当我启动Heroku local时,我看到:

MB-Pro:MyProjects admin$ heroku local
    [WARN] ENOENT: no such file or directory, open 'Procfile'
    [OKAY] package.json file found - trying 'npm start'
    [WARN] No ENV file found
    [WARN] ENOENT: no such file or directory, open 'Procfile'
    [OKAY] package.json file found - trying 'npm start'
    13:23:40 web.1   |  > site-web-france@1.0.0 start /Users/site-web-france/informatique/MyProjects
    13:23:40 web.1   |  > node server.js
    13:23:41 web.1   |  (node:79181) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
    13:23:41 web.1   |  Listening on port 5000
    13:23:42 web.1   |  { MongoError: Authentication failed.
    13:23:42 web.1   |      at /Users/site-web-france/informatique/MyProjects/node_modules/mongodb-core/lib/connection/pool.js:580:63
    13:23:42 web.1   |      at authenticateStragglers (/Users/site-web-france/informatique/MyProjects/node_modules/mongodb-core/lib/connection/pool.js:503:16)
    13:23:42 web.1   |      at Connection.messageHandler (/Users/site-web-france/informatique/MyProjects/node_modules/mongodb-core/lib/connection/pool.js:539:5)
    13:23:42 web.1   |      at emitMessageHandler (/Users/site-web-france/informatique/MyProjects/node_modules/mongodb-core/lib/connection/connection.js:309:10)
    13:23:42 web.1   |      at Socket.<anonymous> (/Users/site-web-france/informatique/MyProjects/node_modules/mongodb-core/lib/connection/connection.js:452:17)
    13:23:42 web.1   |      at Socket.emit (events.js:182:13)
    13:23:42 web.1   |      at addChunk (_stream_readable.js:283:12)
    13:23:42 web.1   |      at readableAddChunk (_stream_readable.js:264:11)
    13:23:42 web.1   |      at Socket.Readable.push (_stream_readable.js:219:10)
    13:23:42 web.1   |      at TCP.onread (net.js:639:20)
    13:23:42 web.1   |    name: 'MongoError',
    13:23:42 web.1   |    message: 'Authentication failed.',
    13:23:42 web.1   |    ok: 0,
    13:23:42 web.1   |    errmsg: 'Authentication failed.',
    13:23:42 web.1   |    code: 18,
    13:23:42 web.1   |    codeName: 'AuthenticationFailed',
    13:23:42 web.1   |    operationTime:
    13:23:42 web.1   |     Timestamp { _bsontype: 'Timestamp', low_: 9, high_: 1534418622 },
    13:23:42 web.1   |    '$clusterTime':
    13:23:42 web.1   |     { clusterTime:
    13:23:42 web.1   |        Timestamp { _bsontype: 'Timestamp', low_: 9, high_: 1534418622 },
    13:23:42 web.1   |       signature: { hash: [Binary], keyId: [Long] } },
    13:23:42 web.1   |    [Symbol(mongoErrorContextSymbol)]: {} }
    13:23:54 web.1   |  TypeError: Cannot read property 'collection' of undefined
    13:23:54 web.1   |      at app.get (/Users/site-web-france/informatique/MyProjects/server.js:95:18)
    13:23:54 web.1   |      at Layer.handle [as handle_request] (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/layer.js:95:5)
    13:23:54 web.1   |      at next (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/route.js:137:13)
    13:23:54 web.1   |      at Route.dispatch (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/route.js:112:3)
    13:23:54 web.1   |      at Layer.handle [as handle_request] (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/layer.js:95:5)
    13:23:54 web.1   |      at /Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/index.js:281:22
    13:23:54 web.1   |      at Function.process_params (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/index.js:335:12)
    13:23:54 web.1   |      at next (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/index.js:275:10)
    13:23:54 web.1   |      at urlencodedParser (/Users/site-web-france/informatique/MyProjects/node_modules/body-parser/lib/types/urlencoded.js:91:7)
    13:23:54 web.1   |      at Layer.handle [as handle_request] (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/layer.js:95:5)
    13:23:54 web.1   |      at trim_prefix (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/index.js:317:13)
    13:23:54 web.1   |      at /Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/index.js:284:7
    13:23:54 web.1   |      at Function.process_params (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/index.js:335:12)
    13:23:54 web.1   |      at next (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/index.js:275:10)
    13:23:54 web.1   |      at expressInit (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/middleware/init.js:40:5)
    13:23:54 web.1   |      at Layer.handle [as handle_request] (/Users/site-web-france/informatique/MyProjects/node_modules/express/lib/router/layer.js:95:5)
    ^C[WARN] Interrupted by User
    [DONE] Killing all processes with signal  SIGINT
    MB-Pro:MyProjects admin$ 13:30:19 web.1   Exited with exit code null
MB-Pro:MyProjects-admin$heroku-local
[WARN]enoint:没有这样的文件或目录,请打开“Procfile”
找到[OKAY]package.json文件-正在尝试“npm start”
[警告]未找到环境文件
[WARN]enoint:没有这样的文件或目录,请打开“Procfile”
找到[OKAY]package.json文件-正在尝试“npm start”
13:23:40网站。1 |>网站-france@1.0.0start/Users/site web france/informatique/MyProjects
13:23:40 web.1 |>node server.js
13:23:41 web.1 |(节点:79181)弃用警告:当前URL字符串解析器已弃用,将在未来版本中删除。要使用新的解析器,请将选项{useNewUrlParser:true}传递给MongoClient.connect。
13:23:41 web.1 |监听端口5000
13:23:42 web.1{MongoError:身份验证失败。
13:23:42 web.1 | at/Users/site-web-france/informatique/MyProjects/node_-modules/mongodb-core/lib/connection/pool.js:580:63
13:23:42 web.1 | at authenticatestraggler(/Users/site-web-france/informatique/MyProjects/node_-modules/mongodb-core/lib/connection/pool.js:503:16)
13:23:42 web.1 | at Connection.messageHandler(/Users/site-web-france/informatique/MyProjects/node_-modules/mongodb-core/lib/Connection/pool.js:539:5)
13:23:42 web.1|在emitMessageHandler(/Users/site-web-france/informatique/MyProjects/node_-modules/mongodb-core/lib/connection/connection.js:309:10)
13:23:42 web.1 | at Socket.(/Users/site-web-france/informatique/MyProjects/node_modules/mongodb-core/lib/connection/connection.js:452:17)
13:23:42 web.1 | at Socket.emit(events.js:182:13)
13:23:42 web.1 |在addChunk(_stream_readable.js:283:12)
13:23:42 web.1 | at readableAddChunk(_stream_readable.js:264:11)
13:23:42 web.1 | at Socket.Readable.push(_stream_Readable.js:219:10)
13:23:42 web.1 |在TCP.onread(net.js:639:20)
13:23:42 web.1 |名称:“MongoError”,
13:23:42 web.1 |消息:“身份验证失败。”,
13:23:42网页1 |好的:0,
13:23:42 web.1 | errmsg:“身份验证失败。”,
13:23:42网页1 |代码:18,
13:23:42 web.1 |代码名:“AuthenticationFailed”,
13:23:42 web.1 |运行时间:
13:23:42 web.1 | Timestamp{"bsontype:'Timestamp',low|9,high|1534418622},
13:23:42 web.1 |“$clusterTime”:
13:23:42 web.1{clusterTime:
13:23:42 web.1 | Timestamp{"bsontype:'Timestamp',low|9,high|1534418622},
13:23:42 web.1 |签名:{hash:[Binary],keyId:[Long]},
13:23:42 web.1 |[符号(mongoErrorContextSymbol)]:{}
13:23:54 web.1 | TypeError:无法读取未定义的属性“collection”
13:23:54 web.1 |在app.get(/Users/site-web-france/informatique/MyProjects/server.js:95:18)
13:23:54 web.1 | at Layer.handle[按handle_请求](/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/Layer.js:95:5)
13:23:54 web.1 |在下一站(/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/route.js:137:13)
13:23:54 web.1 | at Route.dispatch(/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/Route.js:112:3)
13:23:54 web.1 | at Layer.handle[按handle_请求](/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/Layer.js:95:5)
13:23:54 web.1 | at/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/index.js:281:22
13:23:54 web.1 | at Function.process_params(/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/index.js:335:12)
13:23:54 web.1 |在下一站(/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/index.js:275:10)
13:23:54 web.1 |在urlencodedParser(/Users/site-web-france/informatique/MyProjects/node_-modules/body-parser/lib/types/urlencoded.js:91:7)
13:23:54 web.1 | at Layer.handle[按handle_请求](/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/Layer.js:95:5)
13:23:54 web.1|at trim_前缀(/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/index.js:317:13)
13:23:54 web.1 | at/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/index.js:284:7
13:23:54 web.1 | at Function.process_params(/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/index.js:335:12)
13:23:54 web.1 |在下一站(/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/index.js:275:10)
13:23:54 web.1 |在expressInit(/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/middleware/init.js:40:5)
13:23:54 web.1 | at Layer.handle[按handle_请求](/Users/site-web-france/informatique/MyProjects/node_-modules/express/lib/router/Layer.js:95:5)
^C[警告]被用户中断
[完成]使用信号SIGINT终止所有进程
MB Pro:MyProjects admin$13:30:19 web.1退出,退出代码为空

你知道为什么这样不行吗?需要做什么?

正如我在这里看到的,您有一个Node.js+Mongoose服务器应用程序和React客户端应用程序,所以您尝试在单个Heroku应用程序上并发运行。根据我的经验,我会说我不能以这种方式配置应用程序。如果你想消耗你的时间,阅读并尝试重现它

最好的解决方案是将客户端和服务器部分划分为两个独立的项目,并将它们托管在服务器上