2017-11-05 13 views
1

mongodbに接続してデータをデータベースに挿入できません。 (/ usr/local/lib/node_modules/npm/node_modules/npmライフサイクル/ index.js:280:16)emitTwoで冗長スタックをログに記録しています。 (events.js:125:13) EventEmitter.emit(event.js:213:7)の冗長スタックChildProcess.node ./bin/wwwの詳細スタック。 エラー終了ステータス1 エラー[email protected]でエラーが発生しました。 0開始スクリプト。 エラーこれはおそらくnpmには問題ありません。上記のログ出力が追加される可能性があります。ここで 冗長終了[1、真]nodejsでmongodbにデータを挿入できません。以下のエラーのログを見つけてください

はコードです::

var express = require('express'); 
var mongo=require('mongodb').MongoClient; 
var assert=require('assert'); 
var router = express.Router(); 
var url='mongodb://127.0.0.1:27017/test'; 
/* GET home page. */ 
router.get('/', function(req, res, next) {   
res.render('index'); 
}); 


    router.post('/submit',function(req,res,next){ 
    req.check('email','Invalid email Address').isEmail(); 
    req.check('password','Password is 
    invalid').isLength({min:4}).equals(req.body.confirmPassword); 
    var errors=req.validationErrors(); 
    if(errors) 
    { 
     req.session.errors=errors; 
     req.session.success=false; 
    } 
    else 
    { 
     req.session.success=true; 
    } 
    res.redirect('/'); 
}); 

router.post('/insert',function(req,res,next) 
{ 
    //res.redirect('index'); 
    var item = { 
     title:req.body.title, 
     content:req.body.content, 
     author:req.body.author 
    }; 
    mongo.connect(url,function(error,db) 
    { 
     assert.equal(null,err); 
     db.collection('user-data').insertOne(item,function(err,result){ 
      assert.equal(null,err); 
      console.log('Data inserted successfully'); 
      db.close(); 
     }); 
    }); 
    res.redirect('/'); 
}); 

router.get('/get-data',function(req,res,next) 
{ 
    var resultArray=[]; 
    mongo.connect(url,function(err,db) 
    { 
     assert.equal(null,err); 
     var cursor=db.collection('user-data').find(); 
     cursor.forEach(function(doc,err) 
     { 
      assert.equal(null,err); 
      resultArray.push(doc); 
     },function() 
     { 
      db.close(); 
      res.render('index',{items:resultArray}); 
     }); 
    }); 
}); 
module.exports = router; 
+0

あなたのスクリプトにはおそらくエラーがあります。助けが必要な場合は、投稿に貼り付けることをお勧めします。 –

+0

ここにあなたが必要としたコードがあります。助けてください –

+0

'router.post( '/ insert'、...)関数では、' res.redirect'コールバックをmongo insertコールバックの中に置くことになっています'db.close'ステートメントの後ろ)。また、そのエラーを得るためにどのリクエストをしましたか? –

答えて

1

私はあなたがパラメータ名欠場型付けされたと思う:あなたがに'err'のために主張している

router.post('/insert',function(req,res,next) 
{ 
    //res.redirect('index'); 
    var item = { 
     title:req.body.title, 
     content:req.body.content, 
     author:req.body.author 
    }; 
    mongo.connect(url,function(error,db) 
    { 
     assert.equal(null,err); 
     db.collection('user-data').insertOne(item,function(err,result){ 
      assert.equal(null,err); 
      console.log('Data inserted successfully'); 
      db.close(); 
     }); 
    }); 
    res.redirect('/'); 
}); 

nullであるが、有効範囲に'err 'がない場合は、次のようにする必要があります。

router.post('/insert',function(req,res,next) 
{ 
    //res.redirect('index'); 
    var item = { 
     title:req.body.title, 
     content:req.body.content, 
     author:req.body.author 
    }; 
    mongo.connect(url,function(error,db) 
    { 
     assert.equal(null,error); // fixed here 
     db.collection('user-data').insertOne(item,function(err,result){ 
      assert.equal(null,err); 
      console.log('Data inserted successfully'); 
      db.close(); 
     }); 
    }); 
    res.redirect('/'); 
}); 
関連する問題