suchen
HeimWeb-Frontendjs-TutorialDetaillierte Erläuterung der Methode zum Teilen von Datenbankverbindungen zwischen Node.js-Modulen (grafisches Tutorial)

Wir können ein einheitliches Datenbankverbindungsmodul für die gemeinsame Nutzung zwischen Modulen in der lokalen Node-Umgebung schreiben. Als Nächstes erklären wir ausführlich die Methode zur gemeinsamen Nutzung von Datenbankverbindungen zwischen Node.js-Modulen.

Dieser Titel selbst ist ein Vorschlag, da jedes Modul in einer Node.js-Anwendung standardmäßig dieselbe Datenbankverbindung nutzt. Aber wenn die Haltung falsch ist, kann es hässlich aussehen oder sogar schief gehen.

Sie können diesen Teil ignorieren und direkt zur Sache kommen.

HintergrundKürzlich beschäftige ich mich mit der Gestaltung professioneller Kurse, der Titel lautet „System zur Verwaltung von Flugticketreservierungen“. Die Anforderung ist relativ einfach, daher habe ich versucht, Node.js zu verwenden, das ich kürzlich gelernt habe, um sie zu erfüllen. Ich habe ursprünglich recherchiert, welches Node.js-Framework besser geeignet wäre. Nachdem ich mir einige Frameworks angesehen hatte, wurde mir klar, dass dies übertrieben war. Wenn ich keine Zeit hätte, nach Dokumenten und Informationen zu suchen, könnte ich genauso gut damit beginnen, es zu schreiben . Nachdem ich den Code fertig geschrieben habe, werde ich ihn auf Github veröffentlichen. Jeder kann mich gerne kritisieren und korrigieren.

Was die Datenbank betrifft, dachte ich, dass ich mit JSON vertraut bin und es mag (geben Sie es einfach zu, wenn Sie SQL nicht gut gelernt haben -_-#), also habe ich mich für MongoDB entschieden. Node + Mongo ist in den letzten Jahren eine immer beliebter werdende Backend-Kombination und es gibt im Internet zahlreiche Informationen zur gemeinsamen Nutzung. Um jedoch Zeit zu sparen (das Kursdesign dauert nur mehr als eine Woche) und mich mehr auf das System und die Logik zu konzentrieren, habe ich Mongoose verwendet, eine Node.js-Erweiterung, die speziell für die MongoDB-Datenmodellierung verwendet wird, um die für den Betrieb erforderliche Zeit erheblich zu reduzieren Der Datenbankcode.

Auf den Punkt gebrachtIch habe zwei Datenmodelle (Model) erstellt, eines ist der Benutzer (User) und das andere ist der Flug (Flight), die in user.js und Flight gekapselt sind .js bzw. innerhalb eines Moduls. Das Modell ist speziell für die Interaktion mit der Datenbank verantwortlich. Sowohl das Benutzer- als auch das Flugmodul müssen eine Verbindung zur Datenbank herstellen. Am Anfang sah mein Code so aus:

// ----- user.js -----
// require mongoose.js 引用mongoose.js
var M = require('mongoose');
// connect to database 连接数据库
M.connect('mongodb://localhost/test');
// ... some other code ...

// ----- flight.js -----
// require mongoose.js 引用mongoose.js
var M = require('mongoose');
// connect to database 连接数据库
M.connect('mongodb://localhost/test');
// ... some other code ...

// ----- models.js -----
var user = require('./user'),
  flight = require('./flight');

// ----- index.js -----
var Models = require('./models');

Ganz zu schweigen davon, dass dies nicht der Fall ist Überhaupt trocken, diese Methode selbst ist einfach falsch. Wenn ich index.js ausführe, erhalte ich die folgende Fehlermeldung.

> node index.js
> Connection error: { [Error: Trying to open unclosed connection.] state: 2 }

Der Fehler ist: Es wurde versucht, eine Verbindung zu öffnen, die nicht geschlossen wurde.

Wir sollten also einmal an einem Ort eine Verbindung zur Datenbank herstellen und dann andere Module, die eine Verbindung zur Datenbank herstellen müssen, über dieses Modul mit der Datenbank interagieren. Es ist wie eine Steckdosenleiste, die ohne zu zögern schreit: „Es gibt nur eine Steckdose an der Wand, schnapp sie dir nicht! Lass es mich machen! Du... Das ist es!“

Konkreter Plan Wir packen die Aktion zum Herstellen einer Verbindung zur Datenbank in ein Modul ein und stellen die Verbindung anderen Modulen in der gesamten Anwendung zur Verfügung. Anschließend können andere Module, die eine Verbindung zur Datenbank herstellen müssen, auf diese Verbindung verweisen.

// ----- database.js -----
var M = require('mongoose');
M.connect('mongodb://localhost/test');
// reference to the database connection 为这个连接创建一个引用
var db = M.connection;
// expose to modules that require database.js 把这个引用暴露给引用 database 模块的其他模块
module.exports = db;

// ----- user.js ----- flight.js 类似 -----
// ... some other code ...
// 我们会在 models.js 中,把数据库连接的引用作为参数传进来
module.exports = function( db ){
  if( db ){
    // ... do things with the connection ... 如果连接了数据库,就可以执行数据库相关的操作了
  }
}

// ----- models.js -----
// require database module, retrieve the reference to database connection 引用 databse 模块,获取数据库连接的引用
var db = require('./database');
// 把数据库连接的引用传入需要连接数据库的模块,任务完成!
var user = require('./user')( db ),
  flight = require('./flight')( db );

Dies ist eine Möglichkeit für mehrere Module einer Node.js-Anwendung, eine Datenbankverbindung gemeinsam zu nutzen. Ich habe das auf StackOverflow gesehen.

Das Obige habe ich für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Detaillierte Erläuterung verschiedener Ausleihmethoden in JavaScript (Bild- und Text-Tutorial)

Verwendung von JavaScript Implementieren Sie die String-Methode des Mustervergleichs

Javascript Diese ausführliche Erklärung (grafisches Tutorial)

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Methode zum Teilen von Datenbankverbindungen zwischen Node.js-Modulen (grafisches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Die Ursprünge von JavaScript: Erforschung seiner ImplementierungsspracheDie Ursprünge von JavaScript: Erforschung seiner ImplementierungsspracheApr 29, 2025 am 12:51 AM

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

Hinter den Kulissen: Welche Sprache macht JavaScript?Hinter den Kulissen: Welche Sprache macht JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.

Die Zukunft von Python und JavaScript: Trends und VorhersagenDie Zukunft von Python und JavaScript: Trends und VorhersagenApr 27, 2025 am 12:21 AM

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Python vs. JavaScript: Entwicklungsumgebungen und ToolsPython vs. JavaScript: Entwicklungsumgebungen und ToolsApr 26, 2025 am 12:09 AM

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

Ist JavaScript in C geschrieben? Prüfung der BeweiseIst JavaScript in C geschrieben? Prüfung der BeweiseApr 25, 2025 am 12:15 AM

Ja, der Motorkern von JavaScript ist in C. 1) Die C -Sprache bietet eine effiziente Leistung und die zugrunde liegende Steuerung, die für die Entwicklung der JavaScript -Engine geeignet ist. 2) Die V8-Engine als Beispiel wird sein Kern in C geschrieben, wobei die Effizienz und objektorientierte Eigenschaften von C kombiniert werden.

JavaScripts Rolle: das Web interaktiv und dynamisch machenJavaScripts Rolle: das Web interaktiv und dynamisch machenApr 24, 2025 am 12:12 AM

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript: Die Verbindung erklärteC und JavaScript: Die Verbindung erklärteApr 23, 2025 am 12:07 AM

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

Von Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptVon Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptApr 22, 2025 am 12:02 AM

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version