这是我正在编写的代码:
import express from 'express'
import * as blogControler from '../controler/blogControler.js'
import * as authControler from '../controler/authControler.js'
const blogRouter= express.Router()
blogRouter.use(authControler.isVerified)
blogRouter.route('/allblogs').get(blogControler.showallblogs)
blogRouter.route('/:id').get(blogControler.find_blog)
blogRouter.route('/newblogs').get(blogControler.newpost)
export default blogRouter;
当我试图点击/newblogs端点时,它抛出了错误。
我尝试了很多东西,最后当我改变/newblogs端点的位置时,它工作了!!
更新后的代码如下所示-
import express from 'express'
import * as blogControler from '../controler/blogControler.js'
import * as authControler from '../controler/authControler.js'
const blogRouter= express.Router()
blogRouter.use(authControler.isVerified)
blogRouter.route('/allblogs').get(blogControler.showallblogs)
blogRouter.route('/newblogs').get(blogControler.newpost)
blogRouter.route('/:id').get(blogControler.find_blog)
export default blogRouter;
/:id
和/newblogs
的区别我注意到,当我在第一个代码片段中调用/newblogs
时,它正在调用与/:id
相关的函数。我认为它混淆了/:id
和/newblogs
之间的路由。
但为什么会这样呢?
1条答案
按热度按时间fslejnso1#
这是因为路由器将对/newblogs的请求解释为/:id的参数,所以基本上就像有人试图获取id为
newblogs
的博客一样。正如您所展示的,这可以简单地通过改变路线的顺序来修复。