我有以下测试代码,
app.use(function(req,res,next)
{
console.log("Params : " + req.params);
console.log("Path : " + req.path);
console.log("Query :" +req.query);
for(var params in req.query)
{
console.log(params);
}
res.end("processed");
});
每当我使用以下网址生成请求时
http://127.0.0.1:8080/path/resource/myname?user=alanz&password=alpacasocks
我获得了输出
Params : [object Object]
Path : /path/resource/name
Query :[object Object]
user
它似乎没有检测到第二个查询变量。使用curl生成请求。
答案 0 :(得分:0)
var data = req.query;
req.query将产生如下对象
{user:"alanz", password: "alpacasocks"}
您可以通过点符号
提取用户名和密码va username = data.user; //print "alanz"
va password = data.password; //print "alpacasocks"
由于
答案 1 :(得分:0)
因为在express' api中它是这样的:
// GET /shoes?order=desc&shoe[color]=blue&shoe[type]=converse req.query.order // => "desc" req.query.shoe.color // => "blue" req.query.shoe.type // => "converse"
我认为会是这样的:
// GET /users?user[name]=myname&user[password]=mypassword
req.query.user.name
// => "myname"
req.query.user.password
// => "mypassword
因为您要查询同一对象的2个值,而不是2个不同的对象。也许您只想将其用作参数,例如here。
PS:无论如何,在任何实际情况下,我都不会像这样处理密码。
答案 2 :(得分:0)
对我来说,当 URL 包含在 ""
curl "http://127.0.0.1:8080/path/resource/myname?user=alanz&password=alpacasocks"
在 req.query 中返回用户和密码