Express router : Router.use() 需要一个中间件函数但是得到了一个对象
Express router : Router.use() requires a middleware function but got a Object
我知道 SO 中有很多问题,但其中 none 给了我一个解决方案
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('/', (_req, 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
正常工作,您需要将其导入。
我知道 SO 中有很多问题,但其中 none 给了我一个解决方案
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('/', (_req, 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
正常工作,您需要将其导入。