我需要创建要接受数组的url的url,如何在node.js/express中提取数组来自请求?我需要传递一个数组,其名称是我需要从Person返回的参数
model.
/api/person # here I need to pass which fields I want to see but to be generic.
Run Code Online (Sandbox Code Playgroud)
Kev*_*lly 38
一种选择是使用JSON格式.
http://server/url?array=["foo","bar"]
Run Code Online (Sandbox Code Playgroud)
服务器端
var arr = JSON.parse(req.query.array);
Run Code Online (Sandbox Code Playgroud)
或者你自己的格式
http://server/url?array=foo,bar
Run Code Online (Sandbox Code Playgroud)
服务器端
var arr = req.query.array.split(',');
Run Code Online (Sandbox Code Playgroud)
dur*_*rum 33
您可以使用百分比编码对数组进行编码,只需"覆盖"字段,正式连接值.
app.get('/test', function(req,res){
console.log(req.query.array);
res.send(200);
});
localhost:3000/test?array=a&array=b&array=c
Run Code Online (Sandbox Code Playgroud)
此查询将打印['a','b','c']
.
Muh*_*abi 22
当在请求URL中重复多次查询参数时,Express会将查询参数公开为数组:
app.get('/', function(req, res, next) {
console.log(req.query.a)
res.send(200)
}
GET /?a=x&a=y&a=2:
// query.a is ['x', 'y', 'z']
Run Code Online (Sandbox Code Playgroud)
同样适用于其他方法中的req.body.
Jos*_*ato 10
使用下一个代码:
app.use('/', (req, res) => {
console.log(req.query, typeof req.query.foo, Array.isArray(req.query.foo));
res.send('done');
});
Run Code Online (Sandbox Code Playgroud)
在后端,您有两种标准方法.对于下一个请求:
您的NodeJS后端将接收下一个查询对象:
所以,你可以选择你想要的方式.我的建议是第二个,为什么?如果您期望一个数组并且您只传递一个值,那么选项1将把它解释为常规值(字符串)而不是数组.
[我说我们有两个标准并且不行,网址中的数组没有标准,这是存在的两种常见方式.每个Web服务器都以自己的方式执行它,如Apache,JBoss,Nginx等]
如果要从 url 参数传递数组,则需要按照以下示例进行操作:
网址示例:
https://website.com/example?myarray[]=136129&myarray[]=137794&myarray[]=137792
Run Code Online (Sandbox Code Playgroud)
要从 express 中检索它:
console.log(req.query.myarray)
[ '136129', '137794', '137792' ]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
40849 次 |
最近记录: |