我正在尝试使用以下参数对我的节点服务器进行调用
http://localhost:8080/products/?a=13214?b=awedf
我收到错误:无法获取/产品/?a = 13214?b = awedf
当我删除'?'时在字母“a”之前,我得到以下查询:
{ b: 'awedf' }
我希望能够添加'?'并得到以下查询或类似的东西给我以下数组:
{ a:13214, b: 'awedf' }
这是我的代码:
var express = require('express'),
app = express();
var timeout = 0;
app.use(express.static(__dirname, '/'));
app.get('/products/:siteId', function(req, res) {
console.log(req.query);
res.json(products);
});
app.listen(8080);
console.log('Express listening on http://localhost:8080/');
var products = [
{"Product":"Product A"}
,{"Product":"Product B"}
];
编辑: 我通过更改查询参数来修复它:
http://localhost:8080/product?a=13214&b=awedf
答案 0 :(得分:1)
而不是第二个?
添加&
。参数用符号分隔。问号表示查询字符串的开头
此外,您在路径中不需要:siteId
。如果您想使用:siteId
,那么您的网址会显示为/ products / 1234?b = abc
req。 params .siteId === 1234和req.query.b === 'abc'
答案 1 :(得分:1)
因此,您应该?
之前的b
替换为&
,http://localhost:8080/products/?a=13214&b=awedf
编辑:由于您无法修改参数,而且您已经拥有/:siteId
,因此您应该能够像a
那样访问req.params.siteId
的值: