Я пытаюсь отправить данные на мой Express сервер из моего приложения React-Native с помощью запроса POST, но req.body остается пустым (чтобы позже можно было сохранить его в моей базе данных MySql). Тем не менее, мне удается восстановить мои данные и отобразить их с помощью запроса GET.
Когда я запускаю свой запрос POST, у меня есть это в моем терминале:
Go to http://localhost:3000/users so you can see the data.
req.body : {}
Connected to bdd
1 record inserted, result : OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 71,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
}
Мой реагирующий код:
fetch('http://localhost:3000/newuser', {
method : 'POST',
mode : 'no-cors',
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json',
},
body : JSON.stringify({
username : 'test',
})
}) .then((response) => response.json())
.catch((error) => {
console.error(error);
});
Мой сервер узлов:
const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql');
const cors = require('cors');
const connection = mysql.createPool({
host : 'localhost',
user : 'root',
password : '',
database : 'react'
});
// Starting our app.
const app = express();
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.get('/users', function (req, res) {
...
});
app.post('/newuser', function (req, res) {
// console.clear()
console.log("req.body : ", req.body)
let username = req.body.username;
connection.getConnection(function (err) {
if (err) throw new err;
console.log("Connected to bdd");
const sql = "INSERT INTO users(username) VALUES ('" + username + "')";
connection.query(sql, function (err, result) {
if (err) throw err;
console.log("1 record inserted, result : ", result);
res.send('POST request')
});
});
})
// Starting our server.
app.listen(3000, () => {
console.log('Go to http://localhost:3000/users so you can see the data.');
});