Javascript Express.js从路由中的变量值传递密钥名
我试图在路由中动态传递密钥名,但它总是给我Javascript Express.js从路由中的变量值传递密钥名,javascript,node.js,express,Javascript,Node.js,Express,我试图在路由中动态传递密钥名,但它总是给我未定义的 这是我尝试过的代码,但似乎无法正确执行。我试图传递的动态名称是arrayname,它将根据参数进行更改 router.get('/searchterm/table/:table/term/:term/fields/:fields/render/:render/arrayname/:arrayname', function (req, res, next) { var pagetorender = req.params.render;
未定义的
这是我尝试过的代码,但似乎无法正确执行。我试图传递的动态名称是arrayname,它将根据参数进行更改
router.get('/searchterm/table/:table/term/:term/fields/:fields/render/:render/arrayname/:arrayname', function (req, res, next) {
var pagetorender = req.params.render;
var arrayname = req.params.arrayname;
db.query('select * from ' + req.params.table + ' where ' + strfields, function (err, result) {
if (err) {
res.send(err)
} else {
console.log(arrayname)
console.log(result.rows)
res.render(pagetorender, { arrayname: result.rows })
}
})
})
例如,如果我必须通过
res.render(pagetorender, { test123: result.rows })
就像
var arrayname = "test123";
res.render(pagetorender, { arrayname: result.rows })
您可以使用req.param(“param name”)获取参数;所以试试这样吧
router.get('/searchterm/table/:table/term/:term/fields/:fields/render/:render/arrayname/:arrayname', function (req, res, next) {
var pagetorender = req.param("render");
var arrayname = req.param("arrayname");
db.query('select * from ' + req.params.table + ' where ' + strfields, function (err, result) {
if (err) {
res.send(err)
} else {
console.log(arrayname)
console.log(result.rows)
res.render(pagetorender, { arrayname: result.rows })
}
})
})
关键的变化是:
var pagetorender = req.param("render");
var arrayname = req.param("arrayname");
找到了解决办法。必须将arrayname放在方括号中[arrayname]