关于express.Router()问题,萌新求教
发布于 8 年前 作者 oxgos 4389 次预览 最后一次回复是 8 年前 来自 问答
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个是正常的
https://cnodejs.org/topic/50f61adbdf9e9fcc58688b26