【问题标题】:Am getting Transient error while using mongodb + Nodejs on Openshift online container 4.2在 Openshift 在线容器 4.2 上使用 mongodb + Nodejs 时出现瞬态错误
【发布时间】:2020-03-09 00:07:43
【问题描述】:

我在 openshift online 上运行了一个 mongoservice,我还运行了一个 nodejs 应用程序。但是,该应用程序似乎没有连接到 openshift 上的 mongodb,但它在我的本地 Windows 10 上运行良好

这是来自 Openshift 控制台终端的完整日志。

OLA server running on port 8080
Not Connected to Database, ERROR!  { MongoNetworkError: failed to connect to server [127.0.0.1:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
    at Pool.<anonymous> (/opt/app-root/src/node_modules/mongodb/lib/core/topologies/server.js:431:11)
    at Pool.emit (events.js:198:13)
    at createConnection (/opt/app-root/src/node_modules/mongodb/lib/core/connection/pool.js:559:14)
    at connect (/opt/app-root/src/node_modules/mongodb/lib/core/connection/pool.js:973:11)
    at makeConnection (/opt/app-root/src/node_modules/mongodb/lib/core/connection/connect.js:39:11)
    at callback (/opt/app-root/src/node_modules/mongodb/lib/core/connection/connect.js:261:5)
    at Socket.err (/opt/app-root/src/node_modules/mongodb/lib/core/connection/connect.js:286:7)
    at Object.onceWrapper (events.js:286:20)
    at Socket.emit (events.js:198:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }
MongoDB connection error: { MongoNetworkError: failed to connect to server [127.0.0.1:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
    at Pool.<anonymous> (/opt/app-root/src/node_modules/mongodb/lib/core/topologies/server.js:431:11)
    at Pool.emit (events.js:198:13)
    at createConnection (/opt/app-root/src/node_modules/mongodb/lib/core/connection/pool.js:559:14)
    at connect (/opt/app-root/src/node_modules/mongodb/lib/core/connection/pool.js:973:11)
    at makeConnection (/opt/app-root/src/node_modules/mongodb/lib/core/connection/connect.js:39:11)
    at callback (/opt/app-root/src/node_modules/mongodb/lib/core/connection/connect.js:261:5)
    at Socket.err (/opt/app-root/src/node_modules/mongodb/lib/core/connection/connect.js:286:7)
    at Object.onceWrapper (events.js:286:20)
    at Socket.emit (events.js:198:13)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }

【问题讨论】:

    标签: node.js mongodb mongoose openshift


    【解决方案1】:

    我终于找到了解决办法。只需在 mongo 连接 URL 中将 127.0.0.1:27017 替换为 openshiftmongodbservicename:27017

    改变

    mongodb://username:password@127.0.0.1:27017/dbname
    

    mongodb://username:password@openshiftmongodbservicename:27017/dbname
    

    希望这对将来的人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 2020-06-24
      • 1970-01-01
      相关资源
      最近更新 更多