我正在嘗試在我的網站中實現搜尋頁面。使用者應該能夠輸入關鍵字,並且網站應該從資料庫返回產品表中包含該關鍵字的行。
當我嘗試建立與資料庫的連接時收到此錯誤
_stream_writable.js:57 Uncaught ReferenceError: process is not defined 在 ./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)
這是 Search.jsx 檔案。我創造了
從「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
classname=""btn" search< button> < div> < pre> 我知道當我嘗試在這一行建立與資料庫的連接時會引發錯誤< p>
var con="mysql.createConnection({" host: "[removed]", user: password: port: '3306', database: "hs_db" }); 但我知道該資訊是正確的。我能夠在不同的客戶端上毫無問題地存取資料庫。這個錯誤也非常模糊,因此很難調試< < div>
永遠不要讓使用者在前端存取您的資料庫。為了完成您想做的事情,您需要建立一個後端伺服器並使用 HTTP 請求與其通訊。
您將找到有關如何執行此操作的教程此處。