0
私はしばらくこれを見つめていましたが、最終的に私のコードが "200 ok"を返すことに気付きました。レスポンスが実際のデータそのものではなく、それが私のイオンボタンを埋め込まない理由です。郵便配達員を介してAPIを呼び出してコンソールに印刷する際に、必要なデータが表示されているため、問題が.tsファイルのどこかにあると想定しています。データではなくAPIレスポンスを返す
以下私の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);
});
}
}
配列 'response'を作成しますが、決して使用しないでください。意図が何であるかはっきりしない。 'res.send(rows);' res.json(response); 'であるべきですか? – charlietfl
はまだ問題を解決していません。コンソールはAPI server.jsレベルで正常に出力されています – Drew
それを使用しない場合の 'response'は何ですか? – charlietfl