Я пытаюсь отправить пару текстовых полей в свою базу данных SQL с помощью React js через запрос на публикацию, затем на стороне сервера я прослушиваю сообщение и запрашиваю данные в моей базе данных. Прямо сейчас оба значения возвращают «неопределенное» независимо от того, что пользователь вводит в форму, поэтому я думаю, что я испортил код стороны React. Это код, который я использую
Server.js
var express = require('express');
var app = express();
var sql = require("mssql");
const bodyParser = require('body-parser');
app.use(bodyParser.json());
var config = {
user: 'user',
password: 'pass',
server: 'localhost',
database: 'Master'
};
app.post('/', function(req, res) {
res.set('Access-Control-Allow-Origin', '*');
const { FirstName, LastName } = req.body;
let connection = new sql.ConnectionPool(config, function(err) {
let request = new sql.Request(connection);
request.query("insert into persons (FirstName, LastName) values ('" + FirstName + "', '" + LastName + "')");
});
res.send({ message: 'Success'})
});
app.listen(5000, () => {console.log('Server is running..')});
А вот мой код реакции ...
postData.js :
import React, { Component } from 'react';
class postData extends Component {
constructor() {
super();
this.state = { user: {} };
this.onSubmit = this.handleSubmit.bind(this);
}
handleSubmit(e) {
e.preventDefault();
var self = this;
// On submit of the form, send a POST request with the data to the server.
fetch('http://localhost:5000', {
method: 'POST',
body: {
FirstName: self.refs.FirstName,
LastName: self.refs.LastName
}
})
.then(function(response) {
return response.json()
}).then(function(body) {
console.log(body);
});
}
render() {
return (
<form onSubmit={this.onSubmit}>
<input type="text" placeholder="First Name" ref="FirstName"/>
<input type="text" placeholder="Last Name" ref="LastName"/>
<input type="submit" />
</form>
);
}
}
export default postData;
Опять же, я почти уверен, что испортил код на стороне React, но я довольно новичок во всем этом, поэтому я не уверен, с чего начать устранение неполадок. Когда я console.log req.body на стороне сервера, он просто возвращает {}, поэтому кажется, что из сценария реакции не отправляются никакие данные.
Спасибо!