Node.js Express:调用/newblogs端点时出现意外行为

lstz6jyr  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(170)

这是我正在编写的代码:

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之间的路由。
但为什么会这样呢?

fslejnso

fslejnso1#

这是因为路由器将对/newblogs的请求解释为/:id的参数,所以基本上就像有人试图获取id为newblogs的博客一样。正如您所展示的,这可以简单地通过改变路线的顺序来修复。

相关问题