Javascript 快速路由参数

Javascript 快速路由参数,javascript,express,routing,Javascript,Express,Routing,我希望从此url“”获取此查询 从这条快车路线出发 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.que

我希望从此url“”获取此查询 从这条快车路线出发

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')

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

其次,写为
?key=value&key2=value2
的参数称为查询参数,作为特殊的标准形式的参数,您不需要自己绑定它们。Express将把它们解析到
req.query
对象中,而无需指定绑定。因此,您只需将路线更改为
/quote/edit
,就可以了


另一方面,请不要将URL参数直接粘贴到SQL查询中。这就是SQL注入攻击的结局。根据您使用的SQL包,应该有一种方法在查询中使用绑定参数。

尝试将代码更新为:

router.route('/quote/:quote_number/:line_number').get(function (req, res) {
let quote_numer = req.params.quote_number;
let line_number= req.params.line_number;
  res.send(quote_numer  + "" + line_number)
})

对于查询参数(在
之后的所有内容),您需要使用
req.query
类似于
:quote_number
是一个路径参数