Я уверен, что вышеупомянутые ответы работают, но вот подход, ориентированный на новичка, использующий axios и одновременно.
Выполните установку npm для axios и одновременно.
Вот каков ваш логинфайл может делать:
import React from 'react';
import '../public/styles/App.css'
import Header from "./header.js"
import Axios from 'axios'
class Login extends React.Component {
constructor(props) {
super(props);
this.state = {
username: '',
password: ''
};
}
handleInputChange = (e) => {
this.setState({
[e.target.name]: e.target.value
});
}
handleSubmit = (e) => {
e.preventDefault();
const url = 'YOUR BACKEND URL HERE';
const user = {
username: this.state.username,
password: this.state.password
}
Axios.post(url, user).then((res) => {
//handle your login
}).catch((e) => {
//handle your errors
});
}
render() {
return (
<div style={{border:"none"}}>
<div style={{background:"white"}}>
<br></br>
<center><Header /></center>
<br></br>
</div>
<br></br>
<br></br>
<div style={{background:"white"}}>
<center>
<form onSubmit={this.handleSubmit}>
<br></br>
Username: <br></br>
<input type = "text" onChange={this.handleInputChange} name= "username"></input>
<br></br>
<br></br>
Password: <br></br>
<input type = "password" name = "password" onChange={this.handleInputChange}></input>
<br></br>
<br></br>
<input type = "submit" value = "Log-in"></input>
<br></br>
</form>
</center>
<br></br>
</div>
</div>
);
}
}
export default Login;
Одновременно позволяет одновременно запускать внутренний сервер узла и приложение реагирования. В папке проекта вашего узла (бэкенда) откройте package.jsonи настройте его следующим образом:
Это только грубый пример:
{
"name": "dev-proj",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"client-install": "npm install --prefix client",
"start": "node app.js",
"server": "nodemon app.js",
"client": "npm start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\""
},
"author": "",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"express": "^4.16.3",
}
}
Прочтите одновременно документацию для более подробных примеров.
Я использую Nodemon для запуска моего сервера (app.js).Кроме того, реактивный проект в моем случае находится внутри папки клиента, поэтому приведенная выше конфигурация.
В папке вашего реактивного проекта откройте package.json и добавьте следующую строку:
"proxy": "http://localhost:5000"
Учитываяваш внутренний сервер работает на порту 5000.