Функции Firebase: как ждать обещание перед экспортом функции - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь привязать экспресс-приложение к функции https в Firebase, и мне нужно поддерживать документы swagger, а также маршрутизацию с помощью swagger, но для маршрутизации мне нужно дождаться завершения настройки перед экспортом.Я попробовал это без удачи.

async function initApp() {
    const config = {
        appRoot: __dirname
    };

const main = express();

main.use(bodyParser.json());
main.use(bodyParser.urlencoded({ extended: false }));
main.use('/docs', swaggerUi.serve, swaggerUi.setup(swaggerDoc));

await new Promise((resolve, reject) => {
    SwaggerExpress.create(config, (err: any, swaggerExpress: any) => {
        if (err) {
            reject(err);
        }

        swaggerExpress.register(main);
        resolve();
    });
});

return main;
}


export const api = initApp().then(main => functions.https.onRequest(main));

1 Ответ

0 голосов
/ 23 сентября 2019

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

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