Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.js从路由中的变量值传递密钥名_Javascript_Node.js_Express - Fatal编程技术网

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]