我在向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);
答案 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}之类的查询在数据库中定义了该集合})然后它应该工作
由于