簡體   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