Javascript 快速路由参数
我希望从此url“”获取此查询 从这条快车路线出发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
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
是一个路径参数