Angular:传递给express时多个参数未定义

时间:2016-04-08 17:29:44

标签: angularjs express

我正在尝试在http.get调用中向后端发送多个参数。问题是我没有在快递中看到它们:

角:

$http.get("/getImage/", {params: {"filename" : $scope.recipe.image.filename, "mimetype" : $scope.recipe.image.mimetype}})
.then(function(returnData){
    console.log(returnData);
})

快递:

server.get("/getImage/", function (req, res) {
  console.log(req.params.filename);
})
记录后,

req.params.filename显示为undefined。所有帮助表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

我认为你的问题是在express中,req.params是指路径参数,即在像

这样的路径中
app.get('/foo/:bar', function(req, res) {
    console.log(req.params.bar);
});

网址有一个' bar' param,因为注册路径中有一个名为bar的参数。我相信你正在寻找的是req.query,它将查询参数从url转换为json对象,所以如果你正在点击

http://localhost:8080/foo?bar=baz

并且您想获得bar的值,您应该注册您的路线,如

app.get('/foo', function(req, res) {
    console.log(req.query.bar);
});

答案 1 :(得分:0)

在角度中使用$http.get将生成带有URL中的参数的GET请求。所以在Express中你应该可以使用req.query访问它们:

server.get("/getImage/", function (req, res) {
  console.log(req.query.filename);
})