【问题标题】:Reading a single value in a https request's JSON response在 https 请求的 JSON 响应中读取单个值
【发布时间】:2016-04-14 11:29:02
【问题描述】:

在我的 Angular 中,我有请求某个用户的代码,在同一个函数中,我想捕获服务器发送的 json 结果,并读取此 json 对象的一个​​属性。

角度示例:

 $scope.CheckEmail = function () {
    $http.post("/FindUser", {"username": $scope.username})
        .success(function (data) {
            if (isEmpty(data))
                alert("No user Found");
            else
                if(data.email == $scope._id) 
                      alert("found correct user");
        });
}

后端代码:

app.post("/CheckEmail", function (req, res) {
   User.find({ "username": req.body.username }, function (err, us) {
       res.json(us);
    })
})

但是 data.email 是未定义的,请告诉我如何从我的钓鱼者得到的 JSON 响应中读取单个字段。

在此处添加了 console.log(data) 的屏幕截图:


【问题讨论】:

  • 您登录data 并查看返回的内容了吗?
  • 不是一个有棱角的人,而是为你解析了data?如果没有,你需要JSON.parse()它。
  • My Express 发回它在数据库中找到的用户的 JSON 对象
  • 使用网络浏览器的调试器查看响应,或使用 console.log(data)。
  • data 是一个数组,这就是 data.email 未定义的原因。您应该测试 data[0].email.

标签: javascript angularjs json express


【解决方案1】:

在您的代码中:

$http.post("/FindUser", {"username": $scope.username})
        .success(function (data)

您得到的是一个数组,正如您在控制台日志中显示的那样。因此你可能不得不做类似的事情

data[0].email

基本上你必须处理数组,因为那是你得到的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2014-09-13
    • 2012-02-26
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    相关资源
    最近更新 更多