繁体   English   中英

MongoDB收集错误未定义

[英]MongoDB collection error undefined

将数据插入collection中时遇到问题。它给出了无法读取未定义的collection属性的错误 提供一个解决方案,我会尽力而为。 这是我的代码。

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);

这是我面临的错误

好吧,我建议你这样走。

1- creating mongodburl时不要使用数据库名称

更换

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

         })

这样,您将获得为database college定义的res集合(我假设您已经通过诸如db.createCollection('res')类的查询在数据库中定义了该集合),然后它应该可以工作了

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM