微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

快速路由器:Router.use() 需要一个中间件功能,但得到了一个对象

如何解决快速路由器:Router.use() 需要一个中间件功能,但得到了一个对象

我知道 SO 中有很多问题,但没有一个给我解决方

routes/authentication/index.js

import { Router } from 'express'

const router = Router();

router.get('/',(_req,_res) => console.log("Works"))

// module.exports = router                    <-- this works
export default router                      // <-- this doesn't

constants.js

const ROUTES = {
    'AUTHENTICATION' : require('../routes/authentication')
}

export default ROUTES

并在 app.js 中使用它

import express from 'express'
import connectDatabase from './connectDb';
import ROUTES from './constants';
const app = express();

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config();
}
connectDatabase()

app.get('/',res) => {
  res.send("hello world")
})

app.use('/auth',ROUTES.AUTHENTICATION)

export default app;

现在使用 module.exports = router 可以工作,但 export default router 会引发错误

TypeError: Router.use() requires a middleware function but got a Object

我尝试找到问题的原因,但找不到。 提前致谢

解决方法

require constants.js 中的路由器文件,因此 module.exports 有效。

要使 export default router 工作,您需要导入它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。