使用mysqljs,我想查询本地数据库中的一些数据并使用react进行渲染。 这就是我到目前为止所做的:
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;
(另一个文件正在使用Menu组件并将props传递给Menu)
没有显示任何内容,并且在bowser控制台中出现此错误:
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)
为什么?我如何解决这个问题或者我该怎么做以便使用react从db获取数据?
答案 0 :(得分:2)
mysqljs relies on Node's net library。您的浏览器中没有此API,因此如果没有重大更改,您将无法以这种方式使用该库。
您无论如何都不应建立从客户端浏览器到后备数据库的直接连接,因为您的mysql数据库服务器不一定是为此用例构建的。而是通过专用Web服务器RESTful web services发布您的数据。例如,您可以为此目的使用Node.js和restify框架。