5

我想知道如何在 Azure Functions 上部署 Node.js 应用程序。

基本上,我有一个函数设置并运行一个基本的 hello world http 示例,如下所示:

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();
};

我试图部署到函数中的应用程序是一个使用 swagger 的简单 moc 客户端(基本上接受请求并返回一些 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))

4

1 回答 1

4

您可以尝试使用azure-function-express来启用您的 swagger 中间件。

请注意,某些中间件将无法正常运行(例如,body-parser)。这是因为函数req不是流——它被注入到函数中,并且已经填充了“body”属性。

于 2017-04-25T20:15:16.240 回答