#node.js #mongodb
Вопрос:
Я создаю api, используя Mongodb и NodeJS в качестве бэкенда.Я создал отдельный файл подключения к базе данных для этого и пытаюсь вставить данные в другой файл после импорта файла базы данных в него.У меня есть connect.js
файл в db
папке и category.js
файл в routes
папке. Но я получаю ошибку ниже:
TypeError: Cannot read property 'db' of undefined
Ниже приведен мой код:
connect.js
const MongoClient = require('mongodb').MongoClient;
const dotEnv = require('dotenv').config();
const url = process.env.URI;
const conn = () => {
MongoClient.connect(url,{useNewUrlParser:true,useUnifiedTopology:true})
.then((db) => {
}).catch((err) => {
console.log("error",err);
});
}
module.exports = conn;
category.js
const express = require('express');
const router = express.Router();
const conn = require('../db/connect');
router.get('/',(req,res) => {
data = { name:"Digvijay" };
conn().db("ExpDb").collection("Products").insertOne(data,(err,resp) => {
if(err){
console.log("Error",err);
}
else{
console.log("Success");
}
});
});
module.exports = router;
Кто-нибудь, дайте мне знать, что я делаю не так.
Комментарии:
1. 1.Вы можете использовать npm мангуста в качестве рэпера ORM и установить соединение с базой данных 2. Вам нужно создать модель соответствующей коллекции, затем вы можете использовать эту модель, создав ее экземпляр. npmjs.com/package/mongoose
2. Я использую
mongodb
драйвер здесь для nodejs, можем ли мы это сделать, используя его, так как я не собираюсь использовать мангуста на данный момент.
Ответ №1:
Я даю все в одном файле. Вы можете разделить их в соответствии с требованиями.
const MongoClient = require('mongodb').MongoClient;
// Connect to the db
MongoClient.connect("mongodb://localhost:27017/MyDb", function (err, db) {
data = { name:"Digvijay" };
db.collection('Products', function (err, collection) {
collection.insert(data);
db.collection('Products').count(function (err, count) {
if (err) throw err;
console.log('Total Rows: ' count);
});
});
});
это может помочь решить проблему.
https://docs.mongodb.com/manual/reference/method/db.collection.insert/#mongodb-method-db.collection.insert
проблема совместимости с insertOne: