Me pregunto cómo sería posible implementar una aplicación Node.js en Azure Functions.
Básicamente, tengo una configuración de función y ejecuto un ejemplo http básico de hola mundo que se ve así:
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(); };La aplicación que estoy tratando de implementar en una función es un cliente moc simple que usa swagger (básicamente toma una solicitud y devuelve algo de xml). El app.js se parece a:
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 testingLo que no estoy seguro es cómo manejar module.exports = app cuando se usa model.exports para establecer la función (es decir, module.exports = function (context, req))
Puede intentar usar azure-function-express para habilitar su middleware swagger.
Tenga en cuenta que cierto middleware no funcionará correctamente (por ejemplo, analizador de cuerpo). Esto se debe a que las funciones req no son una secuencia: se inyectan en la función con una propiedad de 'cuerpo' ya poblada.