无法将我的React应用程序连接到MySql

时间:2017-11-06 05:47:59

标签: mysql node.js reactjs express

我正在尝试使用nodejs将我的react应用程序连接到MySql数据库,但是在单击提交按钮时它会抛出以下错误:

POST http://localhost:3000/login 500(内部服务器错误)

无法加载http://localhost:3000/login:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:8080'因此不允许访问。响应的HTTP状态代码为500.如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”。在禁用CORS的情况下获取资源。

未捕获(承诺)TypeError:无法获取

以下是我的登录组件和我的nodejs文件的代码。

Login.js:

var mysql = require('mysql');
var express = require('express');
var app = express();

var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "react"
});

con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
//var sql = "INSERT INTO users (name, job) VALUES ('e211', 'Highway 37')";
//con.query(sql, function (err, result) {
//if (err) throw err;
//console.log("1 record inserted");
//});
});

app.post('/login', function(req, res) {
// Get sent data.
var user = req.body;
// Do a MySQL query.
var query = con.query('INSERT INTO users SET ?', user, function(err, result)                     
{
// Neat!
});
res.end('Success');
});


app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});

Connection.js:

 var children = _.filter( array, function(child){ return child.parentid == parent.id; });

    if( !_.isEmpty( children )  ){
        if( parent.id == 0 ){
           tree = children;   
        }else{
           parent['children'] = children
        }
        _.each( children, function( child ){ unflatten( array, child ) } );                    
    }

    return tree;
}

在运行Connection.js时,它连接到我的数据库,如果我尝试通过在Connection.js文件中编写insert语句并运行它来直接插入数据,那么它会插入数据库但是如果我尝试单击提交按钮在我的UI上,它抛出了上述错误。

有人可以告诉我哪里出错并指导我吗?

1 个答案:

答案 0 :(得分:1)

您需要在服务器上启用CORS,以避免对您的服务器API进行任何不必要的调用

app.use(function(req, res, next) {
 res.header("Access-Control-Allow-Origin", "*");
 res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, 
 Content-Type, Accept");
 next();
 });

 app.get('/', function(req, res, next) {
 // Handle the get for this route
  });

 app.post('/', function(req, res, next) {
 // Handle the post for this route
 });