express 路由问题

本人新手, 刚刚接触node.jsexpress框架, 按照网上教程配置了一下路由但是出现了一点问题, 如下:

首先文件结构如下:

clipboard.png

主文件index.js代码如下:

const express = require('express')
const app = express()
const indexRouter = require('./routes/index')
const userRouter = require('./routes/about')

app.use('/', indexRouter.router)
app.use('/about', userRouter.router)

app.listen(3000, () => {
    console.log('App listening on port 3000!')
})

routes/index.js如下:

const express = require('express')
const router = express.Router()

router.get('/', (req, res) => {
    res.send('home')
})

module.exports = {
    router: router
}

routes/about.js如下:

const express = require('express')
const router = express.Router()

router.get('/about', (req, res) => {
    res.send('about')
})

module.exports = {
    router: router
}

其他配置文件都是没问题的, 但是运行服务器的时候, localhost:3000/about页面一直报错, 而localhost:3000/确实正常的, 如下:

clipboard.png

clipboard.png

自己试着解决了一下, 如果将routes/index.jsroutes/about.js文件都写到index.js文件里面(不用模块导出), 那么about页面时可以正常响应的, 但是放到不同的模块里面就不行.

本人刚刚接触这方面, 也不是很懂问题到底出在哪里, 希望能有前辈指导一下, 谢谢!

阅读 2.1k
2 个回答

你在 about.js 里改成

router.get('/', (req, res) => {
    res.send('about')
})

试试

app.use('/about', userRouter.router)

router.get('/about', (req, res) => {

看你的代码,about的正确路径应该是http://localhost:3000/about/about

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题