<p>我正在尝试在我的网站中实现搜索页面。用户应该能够输入关键字,并且网站应该从数据库返回产品表中包含该关键字的行。</p>
<p>当我尝试建立与数据库的连接时收到此错误</p>
<pre class="brush:php;toolbar:false;">_stream_writable.js:57 Uncaught ReferenceError: process is not defined
at ./node_modules/mysql/node_modules/readable-stream/lib/_stream_writable.js (_stream_writable.js:57:1)
at options.factory (react refresh:6:1)
at __webpack_require__ (bootstrap:24:1)
at fn (hot module replacement:62:1)
at ./node_modules/mysql/node_modules/readable-stream/readable-browser.js (readable-browser.js:4:1)
at options.factory (react refresh:6:1)
at __webpack_require__ (bootstrap:24:1)
at fn (hot module replacement:62:1)
at ./node_modules/mysql/lib/protocol/sequences/Query.js (Query.js:7:1)
at options.factory (react refresh:6:1)</pre>
<p>这是 Search.jsx 文件。我创造了</p>
从“react”导入{Component};
从“./itemDisplay”导入 ItemDisplay;
从“./item”导入项目;
从“./DB_functions”导入{测试};
类搜索扩展组件{
构造函数(){
极好的();
这个.状态 = {
项目: []
}
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
处理更改(事件){
this.setState({value: event.target.value});
}
处理提交(事件){
console.log(this.state.value);
Alert('A name was Submitted: ' + this.state.value);// 我们将 this.state.val 发送回后台,而不是 this
var input = this.state.value.toLowerCase()
//在aws产品中搜索
var mysql = require('mysql');
Alert("需要 SQL");
var sql = "从产品中选择 * WHERE 产品名称 = ?"
var con = mysql.createConnection({
主机:“[已删除]”,
用户:“[已删除]”,
密码:“[已删除]”,
端口:'3306',
数据库:“hs_db”
});
Alert(“已建立连接”);
con.query(sql,输入,函数(错误,结果)
{
Alert(“查询已发送”);
如果(错误)
抛出错误;
别的
var usersRows = JSON.parse(JSON.stringify(结果));
for (让 i = 0; i
永远不要让用户在前端访问您的数据库。为了完成您想做的事情,您需要创建一个后端服务器并使用 HTTP 请求与其通信。
您将找到有关如何执行此操作的教程 此处。