【问题标题】:Can I skip query parameters?我可以跳过查询参数吗?
【发布时间】:2021-03-30 00:23:46
【问题描述】:
我正在尝试使用 3 个查询参数进行发布请求:
axios.post(`http://localhost:4000/items?q1=val1&q2=val2&q3=val3)
但是,我的问题是有没有办法跳过查询值?如果我不想输入 q3 的值,我该如何实现呢?
在 post 控制器中,该值是从查询中获取的,这样查询的数量就无关紧要了。如果我手动从请求中添加或删除查询,它工作正常,但我想知道是否有另一种方法可以做到这一点,因为我从表单输入我的值,如果其中一个输入留空,我还能做吗跳过该查询的发布请求?
【问题讨论】:
标签:
javascript
reactjs
mongodb
post
axios
【解决方案1】:
在您的节点脚本中,您可以使用此代码以动态方式获取所有查询:
let queryObject = request.get();
通过这种方式,您将在此对象中拥有所有查询字符串参数,您可以使用它来执行您的逻辑,例如:如果我们有第一个参数而不是第二个参数,则如果我们有第二个参数而不是第二个参数,则执行某些操作先做其他事情:
if(!!queryObject.q1 && !queryOnject.q2){
//do something
}
else if(!queryObject.q1 && !!queryOnject.q2){
//do something
}
else if(!!queryObject.q3){
//do something
}
else {
response.status(400).send("bad request");
}
【解决方案2】:
你们的服务器框架/技术是什么?
在 NodeJS 中,你可以简单地做 ..
let { query1, query2 , query3} = request.get(); // or whatever is supported in your server
..或任意数量的参数:
let queries = request.get();
// iterate through query as an object.
// e.g Object.keys(queries).forEach((prop) => console.log(prop));