2016-11-04 4 views
0

Используя mysqljs, я хочу запросить некоторые данные из моего локального db и визуализировать их с помощью реакции. Это то, что я сделал до сих пор:Uncaught TypeError: Net.createConnection не является функцией (...)

import React from 'react'; 
var mysql  = require('mysql'); 
var connection = mysql.createConnection({ 
    host : 'localhost', 
    user : 'root', 
    password: '', 
    database: 'pep' 
}); 

connection.connect(); 
var Menu=React.createClass({ 
    data : function(){ 
     connection.query('Select * from '+this.props.table, function(err, rows, fields){ 
      if(err) throw err; 
      console.log(rows); 
     }) 
    }, 
    render : function() { 
     return (
      <div> 
       <button onClick={this.data}>click</button> 
      </div> 
     ); 
    } 
}); 
export default Menu; 

(Другим файл с помощью компонента Меню и передавая реквизит в меню) не отображается

Ничего, и она пришла с этой ошибкой в ​​консоли Теплозаправщика:

Connection.js:91 Uncaught TypeError: Net.createConnection is not a function 
    at Connection.connect (webpack:///./~/mysql/lib/Connection.js?:91:13) 
    at eval (webpack:///./src/Menu.js?:24:12) 
    at Object.<anonymous> (http://localhost:3000/static/js/bundle.js:2983:2) 
    at __webpack_require__ (http://localhost:3000/static/js/bundle.js:556:30) 
    at fn (http://localhost:3000/static/js/bundle.js:87:20) 
    at eval (webpack:///./src/Combobox.js?:18:13) 
    at Object.<anonymous> (http://localhost:3000/static/js/bundle.js:3121:2) 
    at __webpack_require__ (http://localhost:3000/static/js/bundle.js:556:30) 
    at fn (http://localhost:3000/static/js/bundle.js:87:20) 
    at eval (webpack:///./src/App.js?:18:17) 

Почему это? Как я могу исправить это или что мне делать, чтобы заставить мои данные из db использовать реакцию?

ответ

2

mysqljs relies on Node's net library. У вас нет этого API в вашем браузере, поэтому вы не сможете использовать библиотеку таким образом без серьезных изменений.

В любом случае вы не должны устанавливать прямое соединение с браузером клиента в свою базу данных резервного копирования, так как ваш сервер базы данных mysql не обязательно создан для этого варианта использования. Вместо этого опубликуйте свои данные через выделенный веб-сервер как RESTful web services. Например, для этой цели можно использовать Node.js и схему restify.