我正在尝试将Express应用程序绑定到firebase https函数,并且我需要支持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));
答案 0 :(得分:-1)
在解决了某些承诺后,无法从模块中导出功能。导出需要在编译时定义。我不知道swagger是如何工作的,但是无论如何,您将需要导出静态定义的函数,并且仅在函数的运行时执行中使用异步承诺。否则,Firebase CLI将不会知道您具有要部署的功能。