运行时框架

Modern.js 的 BFF 支持不同的运行时框架,当前 Modern.js 的 BFF 支持两种运行时框架 Express.jsKoa.js

使用不同运行时框架时,有部分 API 会存在差异。

获取请求上下文

在 BFF 函数中,有时需要获取请求上下文,来处理更多逻辑。此时,根据不同的运行时框架,你需要从通过不同的 API 来获取:

Express.js
Koa.js
api/lambda/hello.ts
import { useContext } from '@modern-js/runtime/express'
export const get = async () => {
  const { req } = useContext();
  console.info(`access url: ${req.url}`);
  return 'Hello Modern.js'
};
INFO

详细内容可以参考 useContext

使用中间件

在 BFF 函数中,有时需要使用中间件,来处理更多逻辑。此时,根据不同的运行时框架,你需要从通过不同的 API 来获取:

Express.js
Koa.js
api/_app.ts
import { hook } from '@modern-js/runtime/express';

export default hook(({ addMiddleware }) => {
  addMiddleware((req, res, next) => {
    req.query.id = 'koa';
    next();
  });
});
INFO

详细内容可以参考 hook