2

我正在getIndividualTwittPostman 上测试我的功能,当我 console.log 到 req.params.id 时,我得到了未定义。这仅发生在这条路线上。如果您能提供任何帮助,我将不胜感激。

index.js

app.use(express.json())

app.use('/profiles',require('../Server/routes/profile'))
app.use('/users',require('../Server/routes/users'))
app.use('/dashboard',require('../Server/routes/dashboard'))

路线/profiles.js

router.post('/:name',authorization,controller.createProfile)
router.get('/:id',authorization,controller.getProfile)
router.delete('/:id',authorization,controller.deleteProfile)
router.get('/twitt/:id',controller.getIndividualTwitt)

控制器/profiles.js

getIndividualTwitt:async(res,req)=>{
  try {
    console.log('hello')
    console.log(req.params.id) //prints undefined
    //const twitt=await connectTwitt.getTwitt(req.params.id)
       
    //res.send(twitt)
  } catch (error) {
    console.log(error)
  }
}

邮递员要求:

GET  http://localhost:3002/profiles/twitt/8
4

2 回答 2

2

替换请求和响应的参数顺序,req首先:

getIndividualTwitt:async(req,res)=>{
//...
于 2022-02-03T20:25:56.143 回答
0

问题

问题在于您定义的端点的顺序。从上到下快速执行代码,所以当你调用/profiles/twitt/8端点时。它将在以下路由器配置中找到匹配项:

router.get('/:id',authorization,controller.getProfile)

解决方案

反转已定义端点的顺序,如下所示:

router.get('/twitt/:id',controller.getIndividualTwitt)
router.get('/:id',authorization,controller.getProfile)
于 2022-02-03T17:41:17.163 回答