node.js + react не принимает пост запрос
всем добрый день. с толкнулся с проблемой.
для теста написал на node пост обработку на запись в mysql: var mysql = require('mysql'); var express = require('express'); var http = require('http'); var bodyParser = require('body-parser'); var app = express(); var connect = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'react' }); connect.connect(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.post('/server', function(req,res,next){ console.log(JSON.stringify(req.body)); connect.query('insert into users(name,login,password) values('+req.body.name+','+req.body.login+','+req.body.password+')', function(error, results, fields){ console.log(results); res.send(JSON.stringify(results)); } ) }); app.listen(3000) connect.end(); на react написал компонент для отправки данный: import React, {Component} from "react"; import logo from '../logo.svg'; export default class Auth extends Component { constructor(props){ super(props) this.state = { name: '', login: '', password: '', preloader: false } this.sendSession = this.sendSession.bind(this) } sendValue(e){ this.setState({[e.target.name]: e.target.value}); } send_sql = (event) => { this.setState({preloader:true}); event.preventDefault(); var data = { name: this.state.name, login: this.state.login, password: this.state.password } fetch("http://localhost:3000/server", { method: 'POST', mode: 'no-cors', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(data) }).then(function(response){ if(response.status >= 400) { throw new Error('Bad response from server'); } return response.json(); }).then(function(data){ console.log(data); if(data == "success") { console.log('Request complete'); } }).catch(function(err){ console.log(err); }); } sendSession = () => this.props.session(true); render(){ return ( <div className="block"> { !this.state.preloader ? <form method="post"> <div id="result-auth-error"></div> <div id="result-auth-success"></div> <span>Name</span> <input type="text" onChange={this.sendValue.bind(this)} name="name"/> <span>Login</span> <input type="text" onChange={this.sendValue.bind(this)} name="login"/> <span>Password</span> <input type="password" onChange={this.sendValue.bind(this)} name="password"/> <button onClick ={this.send_sql}>Login</button> <div className="clear"></div> </form> : <div className="preloader"> <img src={logo} width="50" alt="loading..."/> </div> } </div> ) } } во вкладке сеть в окне разработчика статус отправки "200", данные отправляются, но в node они не принимаются, тело req.body пустое. а в консоле ошибка "SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data". в чём может быть проблема? |
Часовой пояс GMT +3, время: 02:34. |