为什么"错误:未捕获(在承诺中):响应状态:200为Url:null"出现了吗?

时间:2016-07-22 14:10:47

标签: javascript node.js angular nativescript

我的数据库是在Mongo准备的。访问我所拥有的是通过node.js和express,如下所示:

var MongoClient = require('mongodb').MongoClient;
    ...
    app.get("/app/visits", function (req, res, next) {
      console.log("get visits");
      MongoClient.connect('mongodb://localhost:27017/db', function (err, db) {
        if (!err) { console.log("We are connected"); }
        visits = db.collection('visits', function (err, collection) { });
        visits.find().toArray(function (err, user) {
          this.user = JSON.stringify(user);
          if (err) { throw err; } else console.dir(this.user);
        });
        res.send(this.user);
      });
    });

我通过浏览器测试它并且工作正常。如果我将res.send(this.user);更改为res.status(301).send(this.user);,状态也会更改。但问题是:在角度2中,本机脚本代码返回错误:

getActualVisits()
     {  
        return this.http.get("http://localhost:1234/app/visits").map(response => response.json())
      }

我不知道为什么在经过7个小时的尝试后再说一遍。 方法getActualVisits()从:

调用
 getActualSpecialization() {
    let v = this.getActualVisits();
...
}

1 个答案:

答案 0 :(得分:3)

您需要在.map之后调用.subscribe才能观察返回的值。

getActualVisits() {  
    return this.http.get("http://localhost:1234/app/visits")
        .map(response => response.json())
        .subscribe(
            data => this.actualVisits = data,
            err => this.logError(err),
            () => console.log('get actual visits complete')
         );
}

有关详细信息,请参阅以下文档https://auth0.com/blog/2015/10/15/angular-2-series-part-3-using-http/