Моя структура папки выглядит так:
Код внутри сервера. js:
const express = require('express');
const app = express();
const port = process.env.PORT || 5000;
// console.log that your server is up and running
app.listen(port, () => console.log(`Listening on port ${port}`));
// create a GET route
app.get('/express_backend', (req, res) => {
res.send({ express: 'YOUR EXPRESS BACKEND IS CONNECTED TO REACT' });
});
Код внутри App. js (находится в папке клиента):
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
class App extends Component {
state = {
data: null
};
componentDidMount() {
// Call our fetch function below once the component mounts
this.callBackendAPI().then(res => this.setState({ data: res.express })).catch(err => console.log(err));
}
// Fetches our GET route from the Express server. (Note the route we are fetching matches the GET route from server.js
callBackendAPI = async () => {
const response = await fetch('/express_backend');
const body = await response.json();
if (response.status !== 200) {
throw Error(body.message)
}
return body;
};
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Welcome to React</h1>
</header>
<p className="App-intro">{this.state.data}</p>
</div>
);
}
}
export default App;
пакет. json:
{
"name": "dtdc-inside",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
},
"proxy": "http://localhost:5000/"
}
Я запустил "node server. js" без ошибок. перейдите в каталог клиента и запустите "npm start" также без ошибок. Но данные с сервера. js не отображаются в браузере. Мне нужна помощь, чтобы понять, почему это произошло. Спасибо за внимание и прости мой бедный англи sh.