javascript - 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;
任何人都可以帮我找到问题吗?
解决方案
我发现了错误。在我的/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);
推荐阅读
- java - 如何使用所有代理/方面调用 spring bean 方法?
- shell - Shell 脚本:即使脚本具有内置 mount -o remount, exec,权限也被拒绝
- python - Plotly:如何设置分组的子图?
- javascript - 如何向查看页面源代码显示元标记,通过 Javascript 添加
- laravel - 调用未定义的方法 Illuminate\Database\Eloquent\Builder::mapInto()
- typescript - 打字稿类型条件扩展对象
- javascript - Javascript - 是 null 还是 true - 最优雅的解决方案是什么?
- azure - 使用 cloud-init 重新启动后未创建交换文件
- ios - 如何在 SwiftUI 中以相同的尺寸显示不同屏幕尺寸的屏幕?
- spring - 当我尝试在 Spring jpa 中进行左连接时出现异常:null;