You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express报错:Router.use()需传入中间件函数却得到Object

问题原因与解决步骤

这个错误的核心是:你导入的路由文件(./routes/auth或./routes/notes)没有返回一个Express能识别的中间件(也就是Router实例),反而返回了一个普通对象。

解决步骤:

  1. 打开你的routes/auth.js和routes/notes.js文件,检查文件结构是否符合下面的规范:
// 1. 导入express并创建Router实例
const express = require('express');
const router = express.Router();

// 2. 在这里写你的路由逻辑(示例)
router.get('/', (req, res) => {
  res.send('测试路由是否正常');
});

// 3. 必须导出router对象,这是最关键的一步!
module.exports = router;
  1. 重点检查是否写了module.exports = router:

    • 新手最容易犯的错误就是忘记导出router,导致require('./routes/auth')拿到的是一个空对象,Express自然会报错说“需要中间件函数但得到了对象”。
    • 如果已经写了导出,检查是不是导出了别的东西(比如自定义的普通对象),必须导出router这个实例。
  2. 保存路由文件后,重启你的Node服务,错误应该就能解决。

内容的提问来源于stack exchange,提问作者Afeef Raza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:15:33