Я использую последнюю версию Mongodb 3.5.7 с Node.js и Express,
То, что я делаю, я вызываю функцию asyn c, когда вызывается API, и код выглядит следующим образом :
async function insert(data) {
try {
const connection = await client.connect();
db =client.db(dbName);
const insertion = await db.collection('inserts').insertOne(data);
//console.log(await client.close());
await console.log('finished waiting promises');
await client.close();
} catch (err) {
console.log(err.stack);
return Promise.reject('false');
}
return new Promise(resolve =>{
resolve();
})
}
`На самом деле первый вызов API работает так хорошо и успешно вставляет данные в базу данных, проблема начинается со второй попытки, которая приводит к этой ошибке
Я также пробовал обещания в отдельные функции с каждой командой (connect - insert -close) с обещанием обратного вызова и ожиданием выполнения каждой из них.
Также пробовал вызвать функцию подключения, которую я создал. Затем (setdbname) .then (insert) .then (closedb) ...
the options [servers] is not supported
the options [caseTranslate] is not supported
the options [dbName] is not supported
the options [credentials] is not supported
MongoError: topology was destroyed
at executeWriteOperation (C:\Users\raymo\Documents\Ticket\node_modules\mongodb\lib\core\topologies\replset.js:1188:21)
at ReplSet.insert (C:\Users\raymo\Documents\Ticket\node_modules\mongodb\lib\core\topologies\replset.js:1257:3)
at ReplSet.insert (C:\Users\raymo\Documents\Ticket\node_modules\mongodb\lib\topologies\topology_base.js:322:25)
at insertDocuments (C:\Users\raymo\Documents\Ticket\node_modules\mongodb\lib\operations\common_functions.js:259:19)
at InsertOneOperation.execute (C:\Users\raymo\Documents\Ticket\node_modules\mongodb\lib\operations\insert_one.js:26:5)
at C:\Users\raymo\Documents\Ticket\node_modules\mongodb\lib\operations\execute_operation.js:98:26
at new Promise (<anonymous>)
at executeOperation (C:\Users\raymo\Documents\Ticket\node_modules\mongodb\lib\operations\execute_operation.js:91:10)
at Collection.insertOne (C:\Users\raymo\Documents\Ticket\node_modules\mongodb\lib\collection.js:516:10)
at Object.insert (C:\Users\raymo\Documents\Ticket\routes\Handlers\DatabaseHandler.js:68:63)
, а также я попытался вернуться к mon go v. 3.4.0
Я пробовал обычные функции обратного вызова, и они работают. но мне нужно обновить и работать с обещаниями и await / async. Пожалуйста, предложите правки, если мой вопрос не ясен.