обратный вызов не вызывает - PullRequest
0 голосов
/ 26 декабря 2018

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

Я пытаюсь вызвать обратный вызов в lambda aws, но он не работает, однако, если я удаляю export.lambdaHandler и просто вызываю его узлом app.js, он работаетпросто отлично.

exports.lambdaHandler = async (event, context) => {
try {
    MongoClient.connect(url, {
        useNewUrlParser: true
    }, (err, client) => {
        console.log("Connected successfully to server");
    });
    response = {
        'statusCode': 200,
        'body': JSON.stringify({
            message: 'test'
        })
    }
    return response
} catch (err) {
    console.log(err);
    return err;
}
};

должен вернуть

Успешно подключен к серверу

edit

Я изменил его, чтобы вместо этого ждать.теперь это хорошо

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.log(err);
    return err;
}
};

1 Ответ

0 голосов
/ 26 декабря 2018

Попробуйте, это вернет результаты, иначе выдаст ошибку, которая будет обнаружена ниже и возвращена лямбда

exports.lambdaHandler = async (event, context) => {

    try {
        MongoClient.connect(url, {useNewUrlParser: true}, (err, client) => {
            if (err) { console.log(err); throw(err); }
            else { 
               console.log("Connected successfully to server"); 
               console.log(client); 
                response = {
                    'statusCode': 200,
                    'body': JSON.stringify({message: client})
                    };
                return response;
            };
        });
    } catch (err) {
        console.log(err);
        return err;
    }

};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...