【发布时间】:2021-09-07 00:47:07
【问题描述】:
我尝试使用 app.use 将路线表达到单个文件中
app.js
import express from 'express'
import testRouter from 'testRouter'
const app = express()
app.use('/testRouter', testRouter)
app.listen(3000)
testRouter.js
import express from 'express'
const router = express.Router
router.get("/page1", function (req, res){
res.send("test")
})
export default router
使用模块导出是一种官方的方法,它有效
但是为什么函数内部的路由器定义不能像下面这样工作?
app.js
import express from 'express'
import testRouter from 'testRouter'
const app = express()
app.use('/testRouter', function (){
const router = express.Router()
router.get("/page1", function (req, res){
res.send("test")
})
return router
}))
app.listen(3000)
【问题讨论】:
-
在正确的代码中,
app.use()调用的第二个参数是路由器对象。在错误代码中,第二个参数是一个在用户访问localhost:3000/testRouter之前不会运行的函数。要在单个文件中执行相同的操作,您需要实际编写执行相同操作的代码。你可以简单地改用app.get("/testRouter/page1", ...);。
标签: javascript node.js express