Обратный вызов не вызывает

Обратный вызов 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;
}
};

Что это возвращает?

morgan121 26.12.2018 12:41
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
47
1

Ответы 1

Попробуйте это, он вернет результаты, иначе выдаст ошибку, которая будет перехвачена ниже и возвращена 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;
    }

};

Другие вопросы по теме