关于express.Router()问题,萌新求教
发布于 7 年前 作者 oxgos 3688 次浏览 来自 问答

express.Router()问题

// 定义了一个detail.js路由文件:
const express = require('express');
const router = express.Router();
const Movie = require('../model/movie');

// 获取param
router.param('id', (req, res, next, id) => {
	next()
})

router.get('/movie/:id', function(req, res) {
	let id = req.params.id;
	Movie.findById(id, function(err, movie) {
		if(err) {
			console.log(err);
		}

		res.render('detail', {
			title: 'website ' + movie.title,
			movie: movie
		})
	});
})
module.exports = router
app.js :
const express = require('express')
const app = express()
const detail = require('./routes/detail.js')

// 失败,报错404
app.use('/movie/:id', detail)
//成功
app.use(detail)
//成功
app.get('/movie/:id', detail)

问题来了,为什么app.use(’/movie/:id’, detail)会报404错误呢?正确写法应该是怎么样呢?萌新求教

5 回复

/movie/:id 这种请求好像不支持post吧(put,delete不清楚),也就是说一般只用来get,直接app.get就好了,干嘛要use呢?

@imhered 我的代码好像没有用post哦。因为我用express-generator生成的模版,看到官方是用app.use(’/’, index)引用首页的,是这样写的,所以才不太理解为什么我引入的时候就报404错误呢- -

我估计你输入的网址不正确, 你应该用这个来试试 /movie/12/movie/1212

@htoooth 没有输入错哦,输了很多次了,而且下面2个是正常的

回到顶部