我使用了 azure-function-express(@bittrance/azure-function-express)将 Express 应用程序连接到 Azure Function 处理程序,并无缝使用我们熟悉的所有中间件。
但是,这两个包不支持最新的节点版本。有人有解决办法吗
// Express.js - server.js
const express = require('express');
const app = express();
app.get('/hello', (req, res) => {
try {
res.send("Success!");
} catch (error) {
const err = JSON.stringify(error);
res.status(500).send(`Request error. ${err}`);
}
});
app.listen(3000, () => {
console.log('Express.js app listening on port 3000');
});
// Azure Functions - hello/index.js
module.exports = async function (context, req) {
try {
context.res = { body: "Success!" };
} catch (error) {
const err = JSON.stringify(error);
context.res = {
status: 500,
body: `Request error. ${err}`
};
}
};
| - hello
| - function.json
| - 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
});
});
module.exports = createHandler(app);
请参阅文档以使用 Express 作为中间件,并使用中间件将Express应用程序连接到 Azure Function handler。