首页 > 解决方案 > Next.js:没有自定义服务器或包装器的中间件

问题描述

是否可以在不使用自定义服务器或包装器处理程序的情况下创建带有中间件的 Next.js 应用程序?

当我创建一个 Express 应用程序时,我将我的代码拆分为调用 Express 中间件的不同 require 语句:

const express = require("express");
const app = express();

// I call the functions in each modules to use the different middlewares
require("./startup/cors")(app);
require("./startup/routes")(app);
require("./startup/db")();

const port = process.env.PORT || config.get("port");
const server = app.listen(port, () =>
  winston.info(`Listening on port ${port}...`)
);

module.exports = server;

例如,该./startup/cors模块包含以下行:

const cors = require("cors");

module.exports = function(app) {
  app.use(cors());
};

但是,对于我的 Next.js 应用程序,我不明白如何在不创建自定义服务器的情况下获得这样的东西。

我已经遇到过在 Next.js 中使用中间件而不使用自定义服务器的文章,但它使用了我想避免的包装器解决方案。

标签: javascriptnode.jsnext.js

解决方案


目前 Next.js仅支持 api 路径的中间件。常规页面路径中尚不支持中间件。


推荐阅读