suchen

Heim  >  Fragen und Antworten  >  Hauptteil

React Node.js MySQL Uncaught ReferenceError: Prozess ist undefiniert

<p>Ich versuche, eine Suchseite in meine Website zu implementieren. Der Benutzer sollte in der Lage sein, ein Schlüsselwort einzugeben, und die Website sollte Zeilen aus der Produkttabelle zurückgeben, die dieses Schlüsselwort aus der Datenbank enthalten. </p> <p>Ich erhalte diese Fehlermeldung, wenn ich versuche, eine Verbindung zur Datenbank herzustellen</p> <pre class="brush:php;toolbar:false;">_stream_writable.js:57 Nicht abgefangener ReferenceError: Prozess ist nicht definiert unter ./node_modules/mysql/node_modules/readable-stream/lib/_stream_writable.js (_stream_writable.js:57:1) bei options.factory (React Refresh:6:1) bei __webpack_require__ (bootstrap:24:1) bei fn (Hot-Modul-Austausch:62:1) unter ./node_modules/mysql/node_modules/readable-stream/readable-browser.js (readable-browser.js:4:1) bei options.factory (React Refresh:6:1) bei __webpack_require__ (bootstrap:24:1) bei fn (Hot-Modul-Austausch:62:1) unter ./node_modules/mysql/lib/protocol/sequences/Query.js (Query.js:7:1) bei options.factory (React Refresh:6:1)</pre> <p>Dies ist die Search.jsx-Datei.我创造</p> <pre class="lang-js Prettyprint-override"><code>import {Component} from "react"; importiere ItemDisplay aus "./itemDisplay"; Artikel importieren aus "./item"; import { test } from "./DB_functions"; Klassensuche erweitert Component{ Konstrukteur() { super(); this.state = { Artikel: [] } this.handleChange = this.handleChange.bind(this); this.handleSubmit = this.handleSubmit.bind(this); } handleChange(event) { this.setState({value: event.target.value}); } handleSubmit(event) { console.log(this.state.value); Alert('Ein Name wurde übermittelt: ' + this.state.value);// Stattdessen senden wir this.state.val an back var input = this.state.value.toLowerCase() //Suche in AWS-Produkten var mysql = require('mysql'); alarm("SQL erforderlich"); var sql = "SELECT * FROM products WHERE productName = ?" var con = mysql.createConnection({ host: "[Entfernt]", Benutzer: "[Entfernt]", Passwort: "[Entfernt]", Port: '3306', Datenbank: "hs_db" }); Alert("Verbindung hergestellt"); con.query(sql, input, function(err, result) { Alert("Anfrage gesendet"); wenn (irrt) wirf irr; anders varuserRows = JSON.parse(JSON.stringify(result)); for (let i = 0; i<usersRows.length; i++){ if(usersRows[i]['name'].includes(input));{ console.log(usersRows[i]['name']) this.state.items.push(usersRows[i]['name']); } } console.log(usersRows); }) con.end(); var items = this.state.items // // Das war eine Demo-Suche // const items = []; // for (let i = 0; i<this.state.orgitems.length; i++){ // if (this.state.orgitems[i].name.toLowerCase().includes(this.state.value.toLowerCase())){ // console.log(this.state.orgitems[i].name) // items.push(this.state.orgitems[i]); // } // } this.setState({items}); // Demo beenden event.preventDefault(); // Daten empfangen und dann Daten übergeben }render() { zurückkehren( <div class='m-2'> <div className="input-group"> <Eingabetyp="Suche" className="form-control abgerundet" placeholder="Suchen" aria-label="Suchen" aria-describedby="search-addon" onChange={this.handleChange}/> <button onClick={this.handleSubmit} type="button" className="btn btn-outline-dark">search</button> </div> <ItemDisplay items={this.state.items}></ItemDisplay> </div> ); } } Standardsuche exportieren; </code></pre> <p> <pre class="lang-js Prettyprint-override"><code>var con = mysql.createConnection({ host: "[Entfernt]", Benutzer: "[Entfernt]", Passwort: "[Entfernt]", Port: '3306', Datenbank: "hs_db" }); </code></pre> <p>常模糊,因此很难调试</p>
P粉471207302P粉471207302444 Tage vor589

Antworte allen(1)Ich werde antworten

  • P粉011684326

    P粉0116843262023-08-30 12:49:16

    永远不要让用户在前端访问您的数据库。为了完成您想做的事情,您需要创建一个后端服务器并使用 HTTP 请求与其通信。

    您将找到有关如何执行此操作的教程 此处

    Antwort
    0
  • StornierenAntwort