Есть проблема, в файле db.js есть такой код:
const mc = require('mongodb').MongoClient;
var db;
function connect(uri) {
var client = new mc(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
if (err) return console.error(err);
db = client.db("test").collection("test");
console.log("Connected");
});
}
function insert(data) {
db.insertOne(data, (err) => {
if (err) return console.error(err);
console.log("Inserted " + data);
});
}
module.exports.connect = connect;
module.exports.insert = insert;
Но при запуске из другого файла (
const db = require('./db');
db.connect();
db.insert({testing: true});
)
происходит ошибка: Cannot read property 'insertOne' of undefined
В базу данных ничего не кладётся, код завершается.
Буду рад, если подскажете, где ошибка.
В вашем коде переменная db
объявляется всего два раза:
const mc = require('mongodb').MongoClient;
var db;
connect
db = client.db("test").collection("test");
console.log("Connected");
Поэтому когда вы вызываете функцию insert , в которой параметр bd
не определен, javascript берет его из глобальной области видимости, но там Вы не задали ему какое-либо значение, а проста задекларировали переменную используя var
, поэтому значение у нее undefined
. Что бы поправить ошибку поместите db = client.db("test").collection("test");
в тело функции insert
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как сделать кулл даун? пример: Пользователь пишет daily данные записываются в дб и создается кулдаун например на 12 часовесли он пишет команду...
Есть массив ОбъектовВ объекте данные об имени, id и если есть родительский элемент, то еще и родительский элемент
Дело в том, что ajax не отправляет данные на серверПодскажите пожалуйста из-за чего такое может быть