Я выяснил, что здесь происходит.
const client = await MongoClient.connect(URI);
возвращает подключенного клиента в базу данных. Однако если я не закрою соединение с клиентом, процесс узла останется зависшим. Итак, приведенный ниже код работает, как и ожидалось.
const client = await MongoClient.connect(URI);
// Execute some queries
await client.close();
Хотя это может быть просто ошибкой, если я неправильно прочитал документацию MongoDB, я поделюсь последствиями этой ошибки, с которой я столкнулся.
У меня был AWS лямбда-код функции, как показано ниже:
module.exports.handler = async (event) => {
const client = await MongoClient.connect(URI);
// Do something with the client but forgets to close
const response = {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': true,
},
body: JSON.stringify({ foo: 'bar' }),
};
console.log(response);
return response;
};
Я получаю журнал распечатки ответа, но функция отключится и не вернет ответ.
Я выдернул несколько волос, так как я впервые работал с лямбдами и MongoDB, так что помните, ребята, закройте ваше соединение после того, как с ними покончено.
Надеюсь, это кому-нибудь поможет.