Hola a todos, estoy comenzando en esto y me he leido ya varios manuales al respecto, en concreto he realizado el tutorial de angular2 (Tour of Heroes) en TypeScript.
Por otra parte he leido algunos manuales sobre como hacer una api rest con node.
Mi duda es como devolver el contenido obtenido de una consulta mysql en el API node a la Promesa que origina la peticion en Angular. Especifico:
Tengo el archivo hero,service.ts con el siguiente contenido (no esta todo solo lo importante):
Código:
...
@Injectable()
export class HeroService {
private heroesUrl = 'http://localhost:5000/api/heroes'; // URL to web api
private headers = new Headers({'Content-Type': 'application/json'});
constructor(private http: Http) { }
getHeroes(): Promise<Hero[]> {
return this.http.get(this.heroesUrl)
.toPromise()
.then(response => response.json().data as Hero[])
.catch(this.handleError);
}
...
Aqui el trozo del API en Node donde ya tengo la informacion adquirida. La puedo pintar a la consola pero no se como devolversela a la promesa
Código:
router.get('/heroes', function(req, res) {
//req aqui seria para coger los parametros de la url
mysql.connect("prueba",function(error,_connection){
if(_connection){
connection = _connection;
console.log("conectado y devuelto");
mysql.getAllHeroes(connection,function(error,result){
console.log("vuelvo en getHeroes");
if(result){
console.log(result);
res.json(result);
}
else{
res.json(500,{"msg":"Error"});
}
});
}
});
});
La peticion se realiza bien desde angular, llega al server y puedo printar por consola el resultado, pero no se como devolverla a la parte de angular para que la escriba en el front.
Soy bastante novatillo y para mi es una avalancha de cosas nuevas, si me podéis echar una mano y orientarme