Node implementiert Suchfeld für Fuzzy-Abfragen

Node implementiert Suchfeld für Fuzzy-Abfragen

In diesem Artikelbeispiel wird der spezifische Code für Node zur Implementierung von Fuzzy-Abfragen im Suchfeld zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

1. Nachfrage

Klicken Sie auf das Suchsymbol in der Navigationsleiste, um das Suchfeld anzuzeigen, damit Sie eine ungenaue Suche im Artikel durchführen können.

2. Erstellen Sie eine Tabelle

1.Blog-Tabelle

Fügen Sie einen Fremdschlüssel hinzu:

2. Navigationstabelle

3.Typ-Tabelle

4.Benutzertabelle

3. Seiten und Stile

wie.ejs:

<!DOCTYPE html>
<html lang="de">
<Kopf>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0">
    <title>Abfrage</title>
    <link rel="stylesheet" href="/css/bootstrap.min.css" >
    <link rel="stylesheet" href="/css/index.css" >
    <script src="js/jquery-3.3.1.min.js"></script>
    <script src="js/index.js"></script>
</Kopf>
<Text>
    <%-include('detachPart/nav.ejs')%>
    <%-include('detachPart/search.ejs')%>
    <div Klasse="Container">
        <div Klasse="Zeile">
            <div Klasse="col-lg-9">
                <%-include('bigPart/ownblog.ejs')%>
            </div>  
            <div Klasse="col-lg-3">
                <%-include('smallPart/recommend.ejs')%>
                <%-include('smallPart/rank.ejs')%>
                <%-include('smallPart/rightimg_1.ejs')%>
                <%-include('smallPart/information.ejs')%>
                <%-include('smallPart/mylink.ejs')%>
            </div>
        </div>
    </div>
    <%-include('detachPart/footer.ejs')%>
</body>
</html>

suche.ejs:

<div Klasse="Containersucheschließen">
    <form action="/like" method="GET">
        <input name="link" type="text" placeholder="Bitte geben Sie Schlüsselwörter ein">
        <input type="submit" value="Suchen">
        <img class="closebtn" src="image/icon/close.png" alt="">
    </form>
</div>

index.css:

.Suche schließen{
    Anzeige: keine;
    Position: relativ;
    Rand: 0,5rem automatisch;
    Polsterung: 1rem 0;
    Textausrichtung: zentriert;
    Hintergrundfarbe: weiß;
}
.searchclose Eingabe:n-tes-Kind(1){
    Breite: 25rem;
    Höhe: 2,2rem;
    Gliederung: keine;
    Schriftgröße: 0,9rem;
    Polsterung links: 0,5rem;
    Rand: 1px massives Silber;
    Box-Größe: Rahmenbox;
    vertikale Ausrichtung: Mitte;
}
.searchclose Eingabe:n-tes-Kind(2){
    Anzeige: Inline-Block;
    Breite: 10rem;
    Höhe: 2,2rem;
    Zeilenhöhe: 2,2rem;
    Hintergrundfarbe: rgb(41, 41, 41);
    Farbe: weiß;
    vertikale Ausrichtung: Mitte;
    Rand: 1px durchgezogen rgb(41, 41, 41);
    Rahmenstil: keiner;
    Rand links: -1rem;
}
.searchclose img{
    Position: absolut;
    oben: 0;
    rechts: 0;
}

Die folgende Datei wird im folgenden Beispiel angezeigt:

$(Funktion(){
    $(".searchbtn").klick(function(){
        $(".searchclose").anzeigen();
    });
    $(".closebtn").klick(Funktion(){
        $(".searchclose").hide();
    });
});

MySQL-Daten

Verbindung.js:

var mysql = erfordern("mysql");
var Einstellung = erforderlich("./Einstellung");
var-Verbindung;
var Verbindungmysql=Funktion(){
    Verbindung = mysql.createConnection({
        Host:Einstellung.Host,
        Port:Einstellung.Port,
        Benutzer:Einstellung.Benutzer,
        Passwort:Einstellung.pwd,
        Datenbank:Einstellung.Basis
    });
}
Verbindungmysql(); 
exports.select = Funktion (str, Rückruf) {
    Verbindungmysql();  
    Verbindung.Abfrage(str,Funktion(err,res){
        wenn(err) throw err;
        Rückruf(res);
        Verbindung.Ende();  
    });
}   
exports.find = Funktion (str, Parameter, Rückruf) {
    Verbindungmysql();  
    Verbindung.Abfrage(str,Params,Funktion(err,res){
        wenn(err) throw err;
        Rückruf(res);
        Verbindung.Ende();  
    });
}

SQL.js:

module.exports={
    findTitle:"Wählen Sie * aus der Navigation aus",
    clickRank:"Wählen Sie ID und Titel aus dem Blog aus, sortiert nach Anzahl der Beschreibungen, Limit 7",
    recommendInfo:"Wählen Sie ID, Titel, Logo, Empfehlung aus Blog mit Empfehlung=1, Limit 8",
    likeBlog:"Wählen Sie blog.id, Titel, Intro, Logo, Zeit, Typ.Typinfo, Benutzergesicht aus Blog, Typ, Benutzer, wobei blog.Typ=Typ.ID und blog.Gesicht=Benutzer-ID und Titel wie? Sortieren nach Zeit absteigend"
}

versprechen.js:

var mysql = erfordern("../MySQL/Verbindung");
var sql = erfordern("../MySQL/sql");
module.exports={
    Titel suchen:Funktion(){
        returniere neues Promise(Funktion(Auflösen){
            mysql.select(sql.findTitle,Funktion(Ergebnis){
                auflösen(JSON.parse(JSON.stringify(Ergebnis)));
            });
        })
    },
    KlickRank:Funktion(){
        returniere neues Promise(Funktion(Auflösen){
            mysql.select(sql.clickRank,Funktion(Ergebnis){
                auflösen(JSON.parse(JSON.stringify(Ergebnis)));
            });
        });
    },
    empfehlenInfo:Funktion(){
        returniere neues Promise(Funktion(Auflösen){
            mysql.select(sql.recommendInfo,Funktion(Ergebnis){
                auflösen(JSON.parse(JSON.stringify(Ergebnis)));
            });
        });
    },
    likeBlog:Funktion(Nachricht){
        returniere neues Promise(Funktion(Auflösen){
            mysql.find(sql.likeBlog,msg,Funktion(Ergebnis){
                auflösen(JSON.parse(JSON.stringify(Ergebnis)));
            });
        });
    }
}

router.js:

var Versprechen = erforderlich("../MySQL/Versprechen");
var url = erfordern("url");
modul.exporte = Funktion (App) {
    // Suchfeld für Fuzzy-Suche app.get("/like",function(req,res){
        var likeurl=url.parse(req.url,true).query.link;
        asynchrone Funktion getData(){
            var res1 = warte auf Versprechen.findTitle();
            var res5 = warte auf Versprechen.clickRank();
            var res11 = warte auf Versprechen.recommendInfo();
            var res21 = warte auf Versprechen.likeBlog("%"+likeurl+"%");
            var allres = {
                Titelindex:0,
                navres:res1,
                Rangfolge:res5,
                empfehlenres:res11,
                blogres:res21
            }
            alles zurückgeben;
        }
        getData().then(Funktion(Ergebnis){
            res.render("Gefällt mir",Ergebnis);
        });
    });
}

Hinweis: Wie blogres:res21 in der Route und blogres:res10 auf der Homepage müssen die auf der Seite wiedergegebenen Datennamen konsistent sein, hier sind sie blogres

5. Effektanzeige

Führen Sie eine Suche durch:

Suchergebnisse:

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Node.js-Suchpaging-Beispiel basierend auf MongoDB
  • Node.js implementiert Fuzzy-Abfragen auf MongoDB-Datenbank

<<:  Ubuntu 18.0.4 installiert MySQL und behebt FEHLER 1698 (28000): Zugriff für Benutzer ''root''@''localhost'' verweigert

>>:  Detaillierte Erklärung, wie MySQL Phantom-Lesevorgänge löst

Artikel empfehlen

Linux-Befehl „exa“ (bessere Dateianzeige als „ls“)

Installieren Befolgen Sie zur Installation die RE...

Zusammenfassung der Wissenspunkte des Nodejs-Clustermoduls und Anwendungsbeispiele

Der Interviewer wird Sie manchmal fragen: „Sagen ...

Der vollständige Code der im Uniapp-Applet enthaltenen Radardiagrammkomponente

Effektbild: Der Implementierungscode lautet wie f...

Wissen Sie, welche Möglichkeiten es gibt, in Vue Routen zu überspringen?

Inhaltsverzeichnis Die erste Methode: Router-Link...

Tutorial zur MySQL-Datensicherungsmethode mit Multi-Master und One-Slave

Überblick Vorgänge, die auf einer Datenbank ausge...

Detaillierte Erläuterung des SSR-Server-Side-Rendering-Beispiels von Vue

Warum Server-Side Rendering (SSR) verwenden? Bess...

WeChat-Applet zum Abrufen eines Schrittdatensatzes für Mobiltelefonnummern

Vorwort Kürzlich bin ich bei der Entwicklung eine...

Erläuterung der MySQL-Leistungsprüfung durch den Befehl „show processlist“

Der Befehl „show processlist“ ist sehr nützlich. ...

Vue implementiert das Hinzufügen von Wasserzeichen zu hochgeladenen Bildern

In diesem Artikel wird der spezifische Implementi...

Das WeChat-Applet zeichnet die Bewegungsbahn des Benutzers auf

Inhaltsverzeichnis Konfiguration hinzufügen JSON-...