Ich habe NodeJS als Backend, das JSON-Daten von MySQL über localhost ausliefert: 3002/visit; Ich möchte Angular2 den JSON von meinem NodeJS greifen lassen. Das Problem ist, während meine Angular2 App JSON aus dem Online-JSON-API-Dienst vollkommen in Ordnung bringen kann, gibt es einen Fehler beim Abonnieren, wenn ich die URL GET auf localhost: 3002/visit umschalte.Angular2 kann keine Daten von NodeJS abrufen
NodeJS:
var mysql = require('mysql');
var express = require('express');
var app = express();
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'angela',
database : 'emergency',
});
connection.connect(function(err){
if(!err) {
console.log("Database is connected ... nn");
} else {
console.log("Error connecting database ... nn");
}
});
app.get('/patient',getAllFromPatient);
app.get('/staff', getAllFromStaff);
app.get('/visit', getAllFromVisit);
function getAllFromPatient(req,res){
connection.query('SELECT * from patient', function(err, rows, fields) {
if (!err)
res.send(rows);
else
console.log('Error while performing Query.');
});}
function getAllFromStaff(req,res){
connection.query('SELECT * from staff', function(err, rows, fields) {
if (!err)
res.send(rows);
else
console.log('Error while performing Query.');
});}
function getAllFromVisit(req,res){
connection.query('SELECT * from visit', function(err, rows, fields) {
if (!err){
res.send(rows);
console.log("visit data sent");
}else
console.log('Error while performing Query.');
});}
app.listen(3002);
Angular 2:
return this.http.get("http://localhost:3002/visit")
.map(res => res.json())
.subscribe(
data => this.msg = JSON.stringify(data),
err => alert(err),
() => console.log("complete")
);
Können Sie den "Fehler" genauer beschreiben? – qqilihq
Nur eine wilde Vermutung - haben Sie versucht, Response 'json()' Methode anstelle von 'send()'? – rrjohnson85