1. ホーム
  2. node.js

[解決済み] Mongodb: 最初の接続でサーバーへの接続に失敗した

2022-02-17 08:24:04

質問

以下のエラーが発生します。

Warning { MongoError: failed to connect to server [mongodb:27017] on first connect
    at Pool.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/topologies/server.js:325:35)
    at emitOne (events.js:96:13)
    at Pool.emit (events.js:188:7)
    at Connection.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/pool.js:270:12)
    at Connection.g (events.js:292:16)
    at emitTwo (events.js:106:13)
    at Connection.emit (events.js:191:7)
    at Socket.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/connection.js:173:49)
    at Socket.g (events.js:292:16)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at connectErrorNT (net.js:1025:8)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)
  name: 'MongoError',
  message: 'failed to connect to server [mongodb:27017] on first connect' }

Mongoを実行するターミナルウィンドウでこのように表示されるのに。

2016-12-25T03:45:23.715+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:58868 #8 (8 connections now open) 

なんだか、つながっているように見えますが・・・。

両方試しました

$ mongod 

そして

$ brew services start mongo 

これは私の test_helper.js です。

const mongoose = require('mongoose');
mongoose.connect('mongodb:localhost/users_test');
mongoose.connection
 .once('open', () => console.log('Good to go!'))
 .on('error', (error) => {
 console.warn('Warning', error);
 });

mongooseやmongo、あるいはその両方がその場でやってくれると思っているので、特にdbをquot;users_test"にはしていません。

私は "localhost" と "127.0.0.1" の両方を試しました。 OSX 10.11.5を使用しています。 Node 7.3.0とMongo 3.2.9が動作しています。

私は何が間違っているのでしょうか?何が間違っているのか、どうすれば分かりますか?

解決方法は?

接続方法 まで mongodbmongoose を使用することができます。

mongoose.connect('mongodb://localhost/users_test');

または

mongoose.connect('localhost/users_test');

または

mongoose.connect('localhost','users_test');

しかし、そうではなく mongoose.connect('mongodb:localhost/users_test'); というのは、正しいホスト名と一致しないためです ( mongodb ではなく localhost )