@morning-bird/azure-function-express

2.1.1 • Public • Published

azure-function-express

Function logo

npm version Node Node .github/workflows/verify.yaml Apache 2.0

Connect your Express application to an Azure Function handler, and make seamless usage of all middlewares you are already familiar with.

This is a fork of azure-fuction-express which appears to be abandoned.

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 8 through to 16.

Azure Functions runtime v1 (with Node 8), v2 and v3 are supported. v4 is currently untested.

License

Package Sidebar

Install

npm i @morning-bird/azure-function-express

Weekly Downloads

27

Version

2.1.1

License

Apache-2.0

Unpacked Size

28.7 kB

Total Files

9

Last publish

Collaborators

  • morning-bird