【问题标题】:What cause "Error: Uncaught (in promise): Response with status:200 for Url:null" to show up?是什么导致“错误:未捕获(承诺):状态为 200 的 Url:null 的响应”出现?
【发布时间】:2016-07-22 14:10:47
【问题描述】:

我正在通过 NodeJS 和 Express 访问 Mongo 数据库,如下所示:

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);,状态也会更改。 但问题是,带有本机脚本代码的 Angular 2 返回错误:

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

在尝试修复 7 小时后,我不知道为什么。 方法 getActualVisits() 从以下位置调用:

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

【问题讨论】:

    标签: javascript node.js angular nativescript


    【解决方案1】:

    您需要在 .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/

    【讨论】:

    • 控制台中的错误仍然出现,但应用程序现在正在运行:)
    猜你喜欢
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 2017-07-06
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多