在expressjs中传递get参数

时间:2017-06-03 08:40:02

标签: javascript express

var payload = {
    type: 'PAYLOAD'
  };  
app.get('/location', function(req, res) {
    res.sendFile(__dirname + '/public/pages/locations.html',payload);
});

您好,我是expressjs,javascript和node的新手,我无法通过app.get传递数据,我希望能够做的是将有效负载的类型作为GET参数(所以要查看/ locations?type = type_of_location),或者至少能够从页面locations.html的javascript访问它。

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果您要求/locations?type=type_of_location,那么您可以使用type访问req.query.type数据,因为req.query对象包含您需要的数据。

更新:

首先在您的服务器上执行此操作:顺便说一下,向客户端发送/locations?type=type_of_location的唯一方法是重定向他,然后发送文件。

app.get('/location', function(req, res) {
    if(!req.query.type)
        res.redirect('/location?type=' + payload);
    else
        res.sendFile(__dirname + '/public/pages/locations.html',payload);
});

如果你想做相反的事情,请将/locations?type=type_of_location发送到客户端并提取type=type_of_location的值然后你可以使用j window.location.search返回?type=type_of_location来执行此操作

然后在您的客户端上执行此操作javascript:然后必须使用正则表达式处理该结果,如:

let query = window.location.search;
let typeValue = /type=(.*)/.exec(query)[1]; // Extract the value