MongoDB集合错误未定义

时间:2018-03-21 14:45:26

标签: node.js mongodb

我在向collection.it插入数据时遇到了一个问题。无法读取未定义的集合属性。提供了一个解决方案,我尽我所能。 这是我的代码。

var http = require('http');
var fs = require('fs');

var querystring = require('querystring');
var MongoClient = require('mongodb').MongoClient;
var url ="mongodb://127.0.0.1:27017/college";

var port = 4000;
http.createServer((req,res) => {

    if(req.url==="/form")
    {
        res.writeHead(200,{"Content-Type": "text:html"});
        fs.createReadStream("./public/form.html" , "UTF-8").pipe(res);
    }
    if(req.method==="POST")
    {
        var data = " ";
        req.on("data", function(chunk) 
        {
            data += chunk;
        });
        req.on("end" , function(chunk){

             MongoClient.connect(url , function(err,db){
                 if(err) throw err;
                 var q = querystring.parse(data).
                 db.collection('res').insertOne(q,function(err,res){
                    if(err) throw err;
                    console.log("data is insert");
                    db.close();
                 });

             })
        });
    }
}).listen(port);
console.log(port);

here is erro i am facing

1 个答案:

答案 0 :(得分:0)

好吧,我建议你这样走。

1-在creating mongodburl i-e

时不要使用数据库名称

替换

var url ="mongodb://127.0.0.1:27017/college";

var url ="mongodb://127.0.0.1:27017/";

现在,当您尝试连接mongodb服务器时,您将在回调函数中获得mongodb constructor,因此您必须添加一行额外的代码。像下面的东西

 MongoClient.connect(url , function(err,dbC){
             if(err) throw err;
            var db = dbC.db("college");
             var q = querystring.parse(data).
             db.collection('res').insertOne(q,function(err,res){
                if(err) throw err;
                console.log("data is insert");
                db.close();
             });

         })

这样您就可以为res database定义college集合(我假设您已经使用{{1}之类的查询在数据库中定义了该集合})然后它应该工作

由于