Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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上使用mongoDB部署停靠节点,can';找不到mongo地址_Node.js_Mongodb_Docker_Heroku_Npm - Fatal编程技术网

Node.js 在Heroku上使用mongoDB部署停靠节点,can';找不到mongo地址

Node.js 在Heroku上使用mongoDB部署停靠节点,can';找不到mongo地址,node.js,mongodb,docker,heroku,npm,Node.js,Mongodb,Docker,Heroku,Npm,我正在尝试将Node.js、express和mongoDB部署到Heroku上。 在构建图像后,我在Heroku日志中看到: 2020-03-07T12:51:12.880526+00:00 heroku[web.1]: Starting process with command `npm start` 2020-03-07T12:51:16.087665+00:00 app[web.1]: 2020-03-07T12:51:16.087677+00:00 app[web.1]: > e

我正在尝试将Node.js、express和mongoDB部署到Heroku上。 在构建图像后,我在Heroku日志中看到:

2020-03-07T12:51:12.880526+00:00 heroku[web.1]: Starting process with command `npm start`
2020-03-07T12:51:16.087665+00:00 app[web.1]: 
2020-03-07T12:51:16.087677+00:00 app[web.1]: > esemeny-back@1.0.0 start /usr/src/app
2020-03-07T12:51:16.087678+00:00 app[web.1]: > node server.js
2020-03-07T12:51:16.087678+00:00 app[web.1]: 
2020-03-07T12:51:16.937790+00:00 app[web.1]: app error { Error: getaddrinfo ENOTFOUND mongo mongo:27017
2020-03-07T12:51:16.937806+00:00 app[web.1]: at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
2020-03-07T12:51:16.937807+00:00 app[web.1]: name: 'MongoNetworkError',
2020-03-07T12:51:16.937807+00:00 app[web.1]: errorLabels: [ 'TransientTransactionError' ],
2020-03-07T12:51:16.937808+00:00 app[web.1]: [Symbol(mongoErrorContextSymbol)]: {} }
2020-03-07T12:51:16.948788+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-03-07T12:51:16.949327+00:00 app[web.1]: npm ERR! errno 1
2020-03-07T12:51:16.951211+00:00 app[web.1]: npm ERR! esemeny-back@1.0.0 start: `node server.js`
2020-03-07T12:51:16.951445+00:00 app[web.1]: npm ERR! Exit status 1
2020-03-07T12:51:16.951838+00:00 app[web.1]: npm ERR!
2020-03-07T12:51:16.952103+00:00 app[web.1]: npm ERR! Failed at the esemeny-back@1.0.0 start script.
2020-03-07T12:51:16.952335+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
使用本地docker compose,一切正常,我可以从服务器连接到mongo

这是我的Dockerfile:

FROM node:10

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 9000

CMD ["npm", "start"]
还有我的docker-compose.yml

version: '3'
services:
  mongo: 
    container_name: mongo
    image: mongo
    ports:
      - '27017:27017'
  app:
    container_name: docker-node-mongo
    restart: always
    build: .
    ports:
      - '9000:3000'
    links:
      - mongo
最后,这是我与server.js的mongoose连接

mongoose
  .connect('mongodb://mongo:27017/events_db', {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then(() => {
    app.listen(process.env.PORT, err => {
      if (!err) {
        log.info(`Server started on port ${process.env.PORT}`);
        log.info(`Server mode: ${process.env.NODE_ENV}`);
      }
    });
  })
  .catch(err => {
    log.error(err);
    process.exit(1);
  });
有什么想法吗?我试图将我的mongo ip添加到Heroku的配置变量中,但没有成功