快速路由参数

时间:2019-09-17 15:40:05

标签: javascript express routing

我希望从网址“ http://localhost:3000/#/quote/edit/?quote_number=1&line_number=1”获得此查询 从这条路线出发

router.route('/quote/:quote_number&:line_number')
.get(checkAuthentication, (req, res) => {
  let request = new sql.Request(pool)
  let get_lines_query = `
  select *
  from quote_line
  where quote_number = ${req.query.quote_number} and
  line_number = ${req.query.line_number}`

但是它调用的是与

不同的查询
route router.route('/quote/:quote_number')

2 个答案:

答案 0 :(得分:3)

首先,您提供的URL与路由不匹配。您的路线是到达/quote/number&line,但您的URL的格式为/quote/edit/?quote_number=number&line_number=line

第二,写为?key=value&key2=value2的参数称为查询参数,并且作为特殊的标准形式的参数,您不需要自己绑定它们。 Express无需您指定绑定即可将它们解析为req.query对象。因此,您要做的就是将路线更改为/quote/edit,一切就好。

请注意,请勿将URL参数直接粘贴到SQL查询中。这就是您遭受SQL注入攻击的方式。根据您使用的SQL程序包,应该有一种方法可以在查询中使用绑定参数。

答案 1 :(得分:0)

尝试将代码更新为:

docker service create --name=SWARM_OCR_SERVICE --endpoint-mode dnsrr --network=SWARM_NETWORK_OCR ocrserviceimage:v7 --publish 2019:2020 --replicas 5