Обратный вызов MongoClient.connect не вызывает
Я пытаюсь вызвать обратный вызов в aws lambda, но он не работает, однако, если я удалю exports.lambdaHandler и просто вызову его с помощью node app.js, он будет работать нормально.
exports.lambdaHandler = async (event, context) => {
try {
MongoClient.connect(url, {
useNewUrlParser: true
}, (err, client) => {
console.info("Connected successfully to server");
});
response = {
'statusCode': 200,
'body': JSON.stringify({
message: 'test'
})
}
return response
} catch (err) {
console.info(err);
return err;
}
};
должен вернуться
Подключено к серверу успешно
редактировать
Вместо этого я изменил его на ожидание. теперь все хорошо
exports.lambdaHandler = async (event, context) => {
try {
const client = await MongoClient.connect(url, {
useNewUrlParser: true
})
const db = client.db(dbName)
await db.createCollection(collectionName)
client.close()
return {
'statusCode': 200,
'body': JSON.stringify({
message: 'test'
})
}
} catch (err) {
console.info(err);
return err;
}
};



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте это, он вернет результаты, иначе выдаст ошибку, которая будет перехвачена ниже и возвращена Lambda.
exports.lambdaHandler = async (event, context) => {
try {
MongoClient.connect(url, {useNewUrlParser: true}, (err, client) => {
if (err) { console.info(err); throw(err); }
else {
console.info("Connected successfully to server");
console.info(client);
response = {
'statusCode': 200,
'body': JSON.stringify({message: client})
};
return response;
};
});
} catch (err) {
console.info(err);
return err;
}
};
Что это возвращает?