Allows Express usage with Azure Function
Connect your Express application to an Azure Function handler, and make seamless usage of all middlewares you are already familiar with.
In your index.js
:
const createHandler = require("azure-function-express").createHandler;
const express = require("express");
// Create express app as usual
const app = express();
app.get("/api/:foo/:bar", (req, res) => {
res.json({
foo : req.params.foo,
bar : req.params.bar
});
});
// Binds the express app to an Azure Function handler
module.exports = createHandler(app);
Make sure you are binding req
and res
in your function.json
:
{
"bindings": [{
"authLevel" : "anonymous",
"type" : "httpTrigger",
"direction" : "in",
"name" : "req",
"route" : "foo/{bar}/{id}"
}, {
"type" : "http",
"direction" : "out",
"name" : "res"
}]
}
To allow Express handles all HTTP routes itself you may set a glob star route in a single root function.json
:
{
"bindings": [{
"authLevel" : "anonymous",
"type" : "httpTrigger",
"direction" : "in",
"name" : "req",
"route" : "{*segments}"
}, {
"type" : "http",
"direction" : "out",
"name" : "res"
}]
}
Note that segments
is not used and could be anything. See Azure Function documentation.
All examples here.
The log function is the only context function made available. You can access through req.context.log
:
app.get("/api/hello-world", (req, res) => {
req.context.log({ hello: "world" });
...
});
Apache 2.0 © Yves Merlicco