У меня есть бэкэнд NodeJS, который просто делает CRUD.
У меня есть этот маршрут, который читает простую таблицу MySQL
app.get('/fb_photo', (req, res) => {
mysqlConnection.query('SELECT id,photo_date,photo_text from p_fb_photo_search LIMIT 10', (err, rows, fields) => {
if (!err)
res.send(rows);
else
console.log(err);
})
});
Если я протестирую в браузере, он выдаст хороший вывод JSON:
[{"id":23101,"photo_date":"2019-04-23T08:59:52.000Z","photo_text":"NO TEXT"},{"id":19614,"photo_date":"2018-10-20T07:46:40.000Z","photo_text":"NO TEXT"},{"id":46245,"photo_date":"2019-05-27T20:29:49.000Z","photo_text":"NO TEXT"}
Теперь в Angular Frontend у меня есть это:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
title = 'app';
columnDefs = [
{headerName: 'id', field: 'id', sortable: true, filter: true},
{headerName: 'photo_date', field: 'photo_date', sortable: true, filter: true},
{headerName: 'photo_text', field: 'photo_text', sortable: true, filter: true}
];
rowData: any;
constructor(private http: HttpClient) {
}
ngOnInit() {
this.rowData = this.http.get('http://localhost:3000/fb_photo');
}
}
но, что удивительно, таблица ag-grid не может загрузить и извлечь запись без каких-либо ошибок:
Что-то не так с моим кодом? Если я использую образцы JSON AG, это работает.
Thx
EDIT
это мой app.component.html:
<ag-grid-angular
style="width: 500px; height: 500px;"
class="ag-theme-balham"
[rowData]="rowData | async"
[columnDefs]="columnDefs">
</ag-grid-angular>
EDIT2
каждый раз, когда я обновляюсь в угловом приложении, серверная часть nodejs успешно опрашивает результаты
Я не очень понимаю, почему не работает.
EDIT3
Я изменил серверную часть с помощью этого кода:
// Retrieve all users
app.get('/users', function (req, res) {
dbConn.query('SELECT id,photo_date FROM p_fb_photo_search limit 10', function (error, results, fields) {
if(error){
res.send(JSON.stringify({"status": 500, "error": error, "response": null}));
//If there is error, we send the error in the error section with 500 status
} else {
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(results, null, 3));
//res.send(JSON.stringify(results));
//If there is no error, all is good and response is 200OK.
}
});
});
Теперь у меня есть правильный JSON в качестве вывода: