2017-05-02 6 views
-1

私は簡単なポストコールを書いています。次のように私のコードは次のとおりです。Express jsでPOSTクエリを実行中にETIMEDOUTエラーに接続する

/node_modules/mongoose/node_modules/mongodb/lib/server.js:242 
    process.nextTick(function() { throw err; }) 
           ^

var express = require('express');   
var app  = express();     
var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 
var port = process.env.PORT || 8080;   
var router = express.Router();    
var mongoose = require('mongoose'); 
mongoose.connect('mongodb://node:[email protected]:27017/Iganiq8o'); 
router.use(function(req, res, next) { 

    console.log('Something is happening.'); 
    next(); 
});enter code here 

router.get('/', function(req, res) { 
    res.json({ message: 'hooray! welcome to our api!' }); 
}); 

var Bear  = require('./app/models/bears'); 
router.route('/bears')  
.post(function(req, res) { 
    var bear = new Bear();  
    bear.name = req.body.name; 
    bear.save(function(err) { 
     if (err) 
      res.send(err); 

     res.json({ message: 'Bear created!' }); 
    }); 

}); 

app.use('/api', router); 
app.listen(port); 
console.log('Magic happens on port ' + port); 

私は以前に次のようなエラーになっていた私はマングースを更新することにより、整流が、今はまだ、私のように別のエラーを取得しています

failed to connect to [novus.modulusmongo.net:27017]

エラー:connect ETIMEDOUT 54.209.84.209:27017

+1

Mongoのサーバーが稼働しているのに役立ちます

希望を働いているかどうかを確認するには、ここhttps://mlab.com/あなたの接続文字列を取得しますか?接続を開始する前に、サービスが実行されている必要があります。 –

+0

コード内に指定したURLは、リモートデータベースのように見えます。本当にアクセス権があり、実行中ですか?データベースをローカルで実行してみてください。 –

+0

はい、私は事前にm​​ongoサーバーを起動していました –

答えて

0

以下のサンプルを試してみました

var mg= require('mongoose'); 
var db = mg.connection; 
mg.connect('mongodb://node:[email protected]:27017/Iganiq8o'); 

db.on('open', function (ref) { 
    console.log('open connection to mongo server.'); 
}); 

db.on('connected', function (ref) { 
    console.log('Connected connection to mongo server.'); 
}); 

db.on('disconnected', function (ref) { 
    console.log(ref); 
    console.log('disconnected connection.'); 
}); 

db.on('close', function (ref) { 
    console.log('close connection.'); 
}); 

db.on('error', function (ref) { 
    console.log(ref); 
    console.log('Error connection.'); 
}); 

db.on('reconnected', function() { 
    console.log('MongoDB reconnected!'); 
}); 

以下はエラーです。

{ MongoError: failed to connect to server [novus.modulusmongo.net:27017] on first connect 
at Pool.<anonymous> (E:\v2.4.1\node_modules\mongoose\node_modules\mongodb-core\lib\topologies\server.js:313:35) 
at emitOne (events.js:96:13) 
at Pool.emit (events.js:188:7) 
at Connection.<anonymous> (E:\v2.4.1\node_modules\mongoose\node_modules\mongodb-core\lib\connection\pool.js:260:12) 
at Connection.g (events.js:291:16) 
at emitTwo (events.js:106:13) 
at Connection.emit (events.js:191:7) 
at Socket.<anonymous> (E:\v2.4.1\node_modules\mongoose\node_modules\mongodb-core\lib\connection\connection.js:162:49) 
at Socket.g (events.js:291:16) 
at emitOne (events.js:96:13) 
at Socket.emit (events.js:188:7) 
at emitErrorNT (net.js:1278: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 [novus.modulusmongo.net:27017] on first connect' } 

私は本質的にその接続文字列またはポートまたはユーザー名またはパスワードが間違っていると感じます。特別にホストされたサーバー

トライMLAB​​に常にデフォルトポートではありません、それはテストのためにその自由を接続しているかどうかを確認

が27017を忘れないでください...単に接続文字列、ポート、ユーザー名やパスワードを変更することにより、上記のコードで接続してみてくださいすべてのコードが完全にあなたに

関連する問題