web-dev-qa-db-ja.com

UnhandledPromiseRejectionWarning:MongoNetworkError:最初の接続[MongoNetworkError]でサーバー[localhost:27017]への接続に失敗しました

次のコマンドを実行しようとしました。

node index.js

ただし、ターミナルから次の情報を取得します。

    success connection to port 3000
(node:16767) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError
: connect ECONNREFUSED 127.0.0.1:27017]
    at Pool.<anonymous> (/Users/hatchery/Documents/nodejs/fxexpress/node_modules/mongoose/node_modules/mongodb-core/lib/topologies/server.js:503:11
)
    at emitOne (events.js:116:13)
    at Pool.emit (events.js:211:7)
    at Connection.<anonymous> (/Users/hatchery/Documents/nodejs/fxexpress/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:326:12)
    at Object.onceWrapper (events.js:317:30)
    at emitTwo (events.js:126:13)
    at Connection.emit (events.js:214:7)
    at Socket.<anonymous> (/Users/hatchery/Documents/nodejs/fxexpress/node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:245:50)
    at Object.onceWrapper (events.js:315:30)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
(node:16767) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:16767) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

なぜこのエラーが発生するのかわかりません。誰かが何をすべきかアドバイスできますか?

2
ApplePie

私は同じ問題を抱えていて、データベースユーザーのユーザー名とパスワードをdev:devのようなもっと単純なものに変更することで解決しましたが、ser-dev:user-dev)で使用するとエラーが発生しました ...単純なものに変更するだけ

1
u_suck

私は同じ問題に直面しましたが、多くのRNDの後でした。問題があることがわかったので、ターミナルでこのコマンドを実行します。

sudo service mongod start

次に、ターミナルでmongoを実行して確認します。

最初にSkittyのソリューションを試しましたが、うまくいきませんでしたが、それでもソリューションをコードに保持し、次にapp.listen(process.env.PORT || 3000);を変更してうまくいきました。

0
Leon S. Kennedy

NodeJSコマンドを起動する前に、適切な権限で適切なディレクトリを作成してください。

> Sudo mkdir -p /data/db
> Sudo chmod -R go+w /data/db
0
compileRavi