如何在nodejs获取请求中访问axios参数

Posted

技术标签:

【中文标题】如何在nodejs获取请求中访问axios参数【英文标题】:How to acess axios params in nodejs get request 【发布时间】:2021-02-26 17:28:20 【问题描述】:

我正在使用 axios 向 API 发送 get 请求,但无法访问该请求中传递的参数。

这是我的代码: API 请求

 axios.get('http://localhost:4000/students',
          params: 
            category:"indoor"
          
        )

请求处理

router.route('/').get((req, res) => 
  console.log(req.params.category);
  studentSchema.find(category:req.params.category,(error, data) => 
    if (error) 
      return next(error)
     else 
      res.json(data)
    
  )
)

在没有给定参数的情况下,路由工作正常。

console.log(req.params.category);输出未定义。

希望你有问题...

【问题讨论】:

路线呢?不应该是“/students”而不是“/”吗? @Wasbeer 路由工作正常。我已经在 server.js 文件中包含了 ''/students" 路由 你能分享你的代码吗? .zip 或 Github 存储库。 这能回答你的问题吗? Node.js/Express routing with get params 请阅读 ExpressJS 参数:expressjs.com/en/5x/api.html#req.params 正文:expressjs.com/en/5x/api.html#req.body Mongoose 查询:mongoosejs.com/docs/queries.html Axios 参数:***.com/questions/53501185/… 【参考方案1】:

Axios 中的params 是成为querystring 的URL 参数。

Express 的请求对象中的params 是路由参数。例如:当我定义一个 URL 如/students/:id 时,req.params for GET /students/value 将是id: "value"

您在 Express 处理程序中寻找的是 req.query [docs]。

【讨论】:

【参考方案2】:

我相信你所做的与 Axios 无关, 要获取查询参数,在您的代码的服务器端,您需要使用请求的属性query,如下所示:

let category = req.query["category"];

【讨论】:

以上是关于如何在nodejs获取请求中访问axios参数的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Axios 获取请求中获取响应头参数?

如何允许跨域

php文件如何接受vue前端axios传过来的参数实现登录验证?

如何使用 Express 访问 Axios 响应?

如何将两个参数传递给 Javascript/NodeJS 中的 API“获取”请求

如何在需要标头的axios发布请求中具有配置参数