Node.js лямбда-функция, которая будет подключать Redis из промежуточного программного обеспечения - PullRequest
0 голосов
/ 14 июня 2019

У меня есть лямбда-функция, которая использует специальное промежуточное программное обеспечение.


const middy = require('middy');
const authMiddleware = require('../../../../src/middleware/authMiddleware');

const originalHandler = (event, context, callback) => {
    callback(null, {msg: "Done"});
};

module.exports.testFunction1 = middy(originalHandler).use(authMiddleware());

Я пытаюсь подключить Redis из этого промежуточного программного обеспечения, поскольку в Redis хранится токен пользователя, который я проверяю перед каждым вызовом лямбда-функции.

const authMiddleware = (config) => {

    return ({
        before: (handler, next) => {
            handler.context.callbackWaitsForEmptyEventLoop = false;

            var redis = require('redis');
            var redisClient = redis.createClient('xxxx', 'xx.xx.xx');

            redisClient.on('ready', function () {
                console.log("Redis ready");
                next();
            });

        },
    })
}

module.exports = authMiddleware

Моя лямбда-функция возвращает тайм-аут, потому что из промежуточного программного обеспечения нет никакого обратного вызова. Я не могу вызвать handler.callback () из промежуточного программного обеспечения, потому что мне нужно вызвать next (), чтобы запустить мою лямбда-функцию.

Что мне здесь не хватает? Как подключить Redis из промежуточного ПО, а затем запустить функцию лямбда без тайм-аута?

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