2016-06-16 11 views
0

私はnode、express、およびmongodbを学び始めています。MongoDBとexpress、insertManyを試みるときの接続タイムアウト

私が始めた練習のうちの1つでは、documentsというコレクションに1つまたは複数の挿入をしようとしています。

シングル挿入が正常に動作:

let express = require('express') 
let app = express() 

let MongoClient = require('mongodb').MongoClient 
let assert = require('assert') 
let url = 'mongodb://localhost:27017/test' 

app.get('/testInsert',(req,res) => { 
    MongoClient.connect(url, (err, db) => { 
     assert.equal(null, err) 
     console.log("Connected to mongo server") 

     let collection = db.collection('documents') 

     // this works fine 
     collection.insertOne({test: 'worked'}, (err, rec) => { 
      assert.equal(null, err) 
      assert.equal(1, rec.insertedCount) 
      console.log('single insert result: ' + rec) 
      db.close(); 
      res.send('single insert result: ' + rec) 
     }) 

    }) 
}) 

しかし、私は多くを挿入しようとすると、私はタイムアウトを取得:

let express = require('express') 
let app = express() 

let MongoClient = require('mongodb').MongoClient 
let assert = require('assert') 
let url = 'mongodb://localhost:27017/test' 

app.get('/testInsert',(req,res) => { 
    MongoClient.connect(url, (err, db) => { 
     assert.equal(null, err) 
     console.log("Connected to mongo server") 

     let collection = db.collection('documents') 

     // This fires 
     console.log('about to start insert many') 
     collection.insertMany([{greeting: 'hi'}, {greeting: 'hey'}, {greeting: 'yo'}]), (err, recs) => { 
      // I never get past here 
      console.log('finished insert many') 
      assert.equal(err,null) 
      assert.equal(3,recs.result.n) 
      assert.equal(3,recs.insertedCount) 
      db.close(); 
      res.send("multi insert result: " + recs) 
     } 
    }) 
}) 

私はエンドポイントを打ってみたとき、私は要求タイムアウトを取得: error message

しかし、mongoをチェックすると、レコードが確実に挿入されます。 records inserted

私は自分のコールバックの最初の行に到達しないので、私はmongoの挿入に何か間違っていると仮定しています。 mongoに複数のドキュメントを挿入しようとしたときに間違っていることがありますか?

あなたのコード内でこの行で
+1

"collection.insertmany"という行に構文エラーがあると思います。閉鎖後はないはずです)。それはinsertMany()への呼び出しを終了し、コールバックには戻りません –

+0

ああ、良いキャッチ、その余分な括弧は問題の原因となっています。ありがとう! –

+0

私はそれを答えとして追加して、それを選ぶことができます –

答えて

0

"collection.insertMany([{greeting: 'hi'}, {greeting: 'hey'}, {greeting: 'yo'}]), (err, recs) " 

閉じ括弧の後)決算括弧があってはなりません]。私はあなたがそれが助けなければならないと修正したと思う。

関連する問題