Javascript Get请求未完成

Javascript Get请求未完成,javascript,mongodb,angular,express,angular-http,Javascript,Mongodb,Angular,Express,Angular Http,我不熟悉堆栈,我想从express server(我用mongodb创建的)获取数据,当我单击按钮时,按钮单击上的功能已执行,但请求未完成,数据库、服务器都运行良好,我只是在控制台上什么都没有,以下是我的客户端和服务器文件: 客户端(在上运行) 导入模块并添加到ngModule中的导入 从“@angular/Http”导入{Http,Headers,HttpModule,Response,RequestOptions} 作为服务注入构造函数,然后: 模板: <button md-but

我不熟悉堆栈,我想从express server(我用mongodb创建的)获取数据,当我单击按钮时,按钮单击上的功能已执行,但请求未完成,数据库、服务器都运行良好,我只是在控制台上什么都没有,以下是我的客户端和服务器文件:

  • 客户端(在上运行)

  • 导入模块并添加到ngModule中的导入

从“@angular/Http”导入{Http,Headers,HttpModule,Response,RequestOptions}

作为服务注入构造函数,然后: 模板:

<button md-button class="button1" (click)="newQues()">Submit</button>
在端口3000上运行的服务器

app.get('/', function (req, res) {

   model.findOne({ id: 1}, function (err, data) {
   if (err) {
   console.log(err)
   } else {
   console.log(data);
   res.send(data);
}
})

请求时获取这些错误

整个服务器代码:

import * as express from "express";
var app = express();
import * as path from "path";
import * as mongoose from "mongoose";
import * as lodash from "lodash";
import * as morgan from "morgan";


app.use(express.static(path.join(__dirname, "./../client")));

var uriString = 'mongodb://localhost/quizapp';
mongoose.connect(uriString, function (err, res) {
if (err) {
console.log("Error occured while establishing connection " + err);
} else {
console.log("Connection successful ");
}
})

var schema = new mongoose.Schema({     //schema
question: String,
id: Number
})

var quizz = mongoose.model('Quiz', schema);  //creating model

var firstDoc = new quizz({
question: 'question 1',
id: 1
})
var secondDoc = new quizz({
question: 'question 2',
id: 2
})

var question_data = [firstDoc, secondDoc];

quizz.insertMany(question_data, function (err, res) {
if (err) {
console.log("Error occured while saving document object " + err)
} else {
console.log("Data Saved Successful");
}
})

app.get('/data', function(req, res) {
quizz.findOne({ id: 1}, function (err, data) {
 if (err) {
   console.log(err)
 } else {
   console.log(data);
   res.send(data);   //res.json
 }
 })
 })

当我路由到localhost:3000/data时,数据库中的数据显示在窗口上,但当从客户端请求该路由时(请参阅客户端代码this.http.get)发生错误(附图片)

提取数据时,您必须订阅该路由。这样试试

export class SimpleHTTPComponent {
      data: Object;
      loading: boolean;

      constructor(public http: Http) {
      }

      makeRequest(): void {
        this.loading = true;
        this.http.request('http://jsonplaceholder.typicode.com/posts/1')
          .subscribe((res: Response) => {
            this.data = res.json();
            this.loading = false;
          });
      }
    }

我认为你没有把
这个
身体
一起使用。您的console.log应该是这样的<代码>控制台.log(此.body)

我确实订阅了,但什么也没发生,我认为服务器上没有运行路由,或者get-requestinstall morgan中的url不正确,我认为是代替res.send(数据);您应该尝试res.json(数据);我什么都没做,也试着用morgan什么都没做,注意loggeddo一件事。。使用邮递员,看看是否有任何输出。如果您没有得到输出,这意味着您在服务器代码中做了一些错误的事情。客户端请求罚款,我尝试使用jsonplaceholder,它返回数据,这意味着客户端请求正确,我认为url和路由在服务器上有问题,请参阅我附加的图像
export class SimpleHTTPComponent {
      data: Object;
      loading: boolean;

      constructor(public http: Http) {
      }

      makeRequest(): void {
        this.loading = true;
        this.http.request('http://jsonplaceholder.typicode.com/posts/1')
          .subscribe((res: Response) => {
            this.data = res.json();
            this.loading = false;
          });
      }
    }