首页 > 解决方案 > Express Router 中间件错误(`app.use() requires a middleware function`)

问题描述

我知道这里有很多类似的问题,但我保证我已经阅读了所有这些问题并且没有找到解决方案。

我正在尝试使用 Express Router 编写应用程序,但出现此错误:

app.use() requires a middleware function

我已经尝试以多种方式实现中间件,但无法修复。

这是我的代码的最新版本(非常简洁):

/index.js

import express from 'express';

const app = express();

app.use((req, res, next) => {
  console.log(req.method, req.url);
  next();
});

app.use(require('./routes'));

/routes/index.js

import credentials from './credentials';

export default [credentials];

/routes/credentials/index.js

import express from 'express';

const router = express.Router();

router.get('/credentials', async (req, res) => {
    console.log('Getting credentials...');
});

export default router;

任何人都可以帮我找到问题吗?

标签: javascriptnode.jsexpress

解决方案


我发现了错误。在我的/index.js中,我应该将我的路线添加到 arouter.use而不是app.use.

这是我的最终代码/index.js

import express from 'express';

const app = express();
const router = express.Router();

router.use(require('./routes'));
app.use(router);

推荐阅读