@chthomos/azure-function-express
v2.0.8
Published
Allows Express usage with Azure Function - for Node 14
Downloads
7
Maintainers
Readme
fork of azure-function-express from Hapticmedia
Tested and working with express 4.17.1 and Node 14 (LTS) and Functions Runtime v3
Summary of changes
- Fixed deprectation warning for req._headers (now uses getHeaders())
- Fixed problem with unpipe
azure-function-express
Allows Express usage with Azure Function
Description
Connect your Express application to an Azure Function handler, and make seamless usage of all middlewares you are already familiar with.
Usage
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.
Context
All native Azure Functions context properties, except done
, are exposed through req.context
.
As en example, you can log using:
app.get("/api/hello-world", (req, res) => {
req.context.log({ hello: "world" });
...
});
Runtime compatibility
Supported Node version are:
- Node 12
- Node 14 (LTS)
Azure Functions runtime v3 is supported.
License
Apache 2.0 © Yves Merlicco