簡體   English   中英

我無法通過nodejs在mongodb中插入數據。 請在下面的錯誤日志中查找

[英]I am not able insert data in mongodb by nodejs. Please find below the logs of the error

我無法連接到mongodb並將數據插入數據庫。 請在下面找到代碼。我在日志中收到以下錯誤:: EventEmitter上的詳細堆棧。(/ usr / local / lib / node_modules / npm / node_modules / npm lifecycle / index.js:280:16) events.js:125:13)EventEmitter.emit上的詳細堆棧(events.js:213:7)ChildProcess.node上的詳細堆棧./bin/www錯誤退出狀態1錯誤在firstexpressproject@0.0.0啟動腳本處失敗。 錯誤這可能不是npm的問題。 上面可能還有其他日志記錄輸出。 詳細出口[1,正確]

這是代碼:

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;

我認為您沒有鍵入參數名稱:

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('/');
});

您要聲明“ err”為空,但范圍內沒有“ 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('/');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM