Allows Express usage with Azure Function
npm install azure-function-express-2
index.js:
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:
`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:
`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.
Context
All native Azure Functions context properties, except done, are exposed through req.context.
As en example, you can log using:
`js
app.get("/api/hello-world", (req, res) => {
req.context.log({ hello: "world" });
...
});
``