返回API响应而不是数据

时间:2017-11-28 15:37:37

标签: javascript json angular ionic-framework

我一直盯着这个,终于意识到我的代码正在返回“200 ok”。响应而不是实际数据本身,这就是为什么它不会填充我的离子按钮。当我通过邮递员调用API并将其打印到控制台时,它显示了我需要的数据,因此我假设问题出现在.ts文件中。

以下是我的API代码:

app.get('/getAllProvs', function (req,res) {
    //var id = req.params.id;

    connection.query('SELECT * from Patient', function(err, rows, fields) {
        if (!err){
            var response = [];

            if (rows.length != 0) {
                response.push({'result' : 'success', 'data' : rows});
            } else {
                response.push({'result' : 'error', 'msg' : 'No Results Found'});
            }

            res.setHeader('Content-Type', 'application/json');
            //res.status(200).send(JSON.stringify(rows));
            res.send(rows);
            console.log(rows);
        } else {
            res.status(400).send(err);
        }
    });
});

以下是我的提供商.ts代码:

export class RestService {

 data1: any;
  constructor(public http: Http) {
    console.log('Hello RestServiceProvider Provider');
  }

    getAllProvs(){
        if(this.data1){
            return Promise.resolve(this.data1);
        }
        return new Promise(resolve => {
            this.http.get('http://lndapp.wpi.edu:5000/getAllProvs')
            .map(res => res.json())
            .subscribe(data => {
                console.log("rest-services.ts subscribe");
                this.data1 = data;
                console.log(data);
                resolve(this.data1);
            });
        }); 

    }
}

下面是我的页面.ts文件:

export class AllPatientsPage {
  data1: any;

  constructor(public app: App, public loadingCtrl: LoadingController, private toastCtrl: ToastController, public navCtrl: NavController, public restService: RestService){
    this.getAllProvs();
    }
  }
   getAllProvs(){
        this.restService.getAllProvs()
        .then(data => {
            console.log("all-patients.ts data");
            console.log(data);
            this.data1 = data;
        }).catch(e => {
            console.log(e);
        });
    }
}

1 个答案:

答案 0 :(得分:0)

从您的服务发送 json 回复:

res.json(rows);