Express Router中间件错误(“ app.use()需要中间件功能”)

时间:2018-12-26 02:03:11

标签: javascript node.js express

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

我正在尝试使用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;

有人可以帮我找到问题吗?

1 个答案:

答案 0 :(得分:1)

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

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

import express from 'express';

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

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