繁体   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