#node.js #mongodb #typeerror
Вопрос:
поэтому я работаю с node.js и монгодб, и я новичок, Ниже нас мой код:
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/myproject';
MongoClient.connect(url,function(err,db){
if (err){
return console.dir(err);
}
console.log('connected to mdb');
InsertDoc(db,function(){
db.close();
})
});
const InsertDoc= function(db, callback){
const collection = db.collection('users');
collection.insert({
name : 'vishnu',
email:'vishnu@123'
},
function(err,result){
if(err){
return console.dir(err);
}
console.log('inserted doc');
console.log(result);
callback(result);
});
}
ERROR: TypeError: db.collection is not a function
Я не уверен, где я ошибся
, пожалуйста, дайте мне знать об ошибке
Ответ №1:
Обратный вызов от connect
вернет вам экземпляр MongoClient
и экземпляр Db
, как указано в официальной документации по драйверу узла Mongodb, посмотрите на второй пример
https://mongodb.github.io/node-mongodb-native/4.1/classes/MongoClient.html
Как только вы получите коллекцию, вам нужно будет получить db
с помощью client.db(dbName)
которой вы получите db
объект для создания collection
.
// Connect using the MongoClient.connect static method
const MongoClient = require('mongodb').MongoClient;
// Connection url
const url = 'mongodb://localhost:27017/myproject';
// Connect using MongoClient
MongoClient.connect(url, function(err, client) {
const db = client.db("myproject");
const collection = db.collection("users");
// do your thing
client.close();
});
`