Развертывание приложения Node в функциях Azure

Мне интересно, как можно развернуть приложение Node.js в функциях Azure.

По сути, у меня есть функция настройки и запуска базового примера http: hello world, который выглядит следующим образом:

module.exports = function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');
    context.res = {
        // status: 200, /* Defaults to 200 */
        body: "Hello " + req.params.name
    };
    context.done();
};

Приложение, которое я пытаюсь развернуть в функции, представляет собой простой клиент moc, который использует swagger (в основном принимает запрос и возвращает немного xml). App.js выглядит так:

const SwaggerExpress = require('swagger-express-mw');
const app = require('express')();
const compression = require('compression');

const configSwagger = {
    appRoot: __dirname, // required config
};


SwaggerExpress.create(configSwagger, (err, swaggerExpress) => {
    if (err) {
        throw err;
    }

    // install middleware
    swaggerExpress.register(app);

    // server configuration
    const serverPort = process.env.PORT || 3001;
    app.listen(serverPort, () => {
        //logger.info('Listening on port %s', serverPort);
    });

    app.use(compression());
});

module.exports = app; // for testing

В чем я не уверен, так это в том, как обращаться с module.exports = app, когда modeul.exports используется для создания функции (т.е. module.exports = function (context, req))

1 ответ

Вы можете попробовать использовать Azure-Function-Express, чтобы включить ваше промежуточное программное обеспечение Swagger.

Обратите внимание, что некоторые промежуточные программы не будут работать правильно (например, body-parser). Это потому, что функции req не является потоком - он внедряется в функцию с уже заполненным свойством body.

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