Я создаю простую выборку данных, используя ReactJS и MySql в качестве базы данных. Для связи между внешним интерфейсом и задней частью я использую экспресс, все в порядке, данные массива появляются в console.log, но не на html-странице.
Я добавил еще один пакет "node-fetch", но тоже нетработает.
Вот мой код в App.js
import React, { Component } from 'react';
import Navbar from '../src/components/Navbar';
import './App.css';
import fetch from 'node-fetch';
class App extends Component {
constructor() {
super();
this.state = {
tbl_barang: []
};
}
componentDidMount() {
fetch('http://localhost:4000')
.then(res => res.json())
.then(tbl_barang => this.setState({data: tbl_barang}, () => console.log('Customers fetched...', tbl_barang)));
}
render() {
return (
<div className='App'>
<Navbar />
<h1>Daftar Barang</h1>
<ul>
{this.state.tbl_barang.map(tbl_barang =>
<li key={tbl_barang.id}>
{tbl_barang.tipe_barang}
{tbl_barang.product_name}
</li>
)}
</ul>
<button> Click disini </button>
</div>
);
}
}
export default App;
, а вот код для получения данных из MySQL
const path = require ('path');
const mysql = require ('mysql');
module.exports = function (app, connection) {
//if no matching path, back to index.html
app.get('/', function(req, res){
connection.query('SELECT id, tipe_barang, product_name FROM tbl_barang', function (err, data){
(err)? res.send(err):res.json ({data});
})
})
}
Я ожидал данных массиваотобразить на html странице