2016-04-02 9 views
1

Ich gehe für NodeJS. Wie immer treten jedoch einige Probleme auf.Einzelne MySQL-Verbindung über mehrere Module in NodeJS

Ich habe wenige Controller in /controllers, die ich in /routes.js einschließen; Ich verwende node-mysql als Datenbank Wrapper und ich frage mich wirklich, ob es eine bessere Alternative zu dem, was ich gerade mache, gibt.

Im Moment in routes.js, ich bin eine Verbindung zu der Datenbank wie folgt aus:

pool   = require('mysql').createPool({ host: 'host', user: 'root', password: 'pass', database: 'db' }) 

Jetzt möchte ich wirklich mit MySQL in meinem User Controller als auch, was bereits in der erforderlich ist, routes Datei.

Ich verstehe, dass ich benötigen und eine Verbindung zu mysql in User Controller wieder herstellen, aber ist das eine gute Praxis?

Gibt es eine bessere Alternative als node-mysql und die Verbindung mit der DB in jedem Controller?

Fehle ich hier etwas?

Danke!

Antwort

1

Für Knoten-mysql finden diese this answer,

ODER Sie können Sequelize verwenden, können Sie this article wissen Vorteile von Sequelize lesen.

Für Ihre Anforderung,

Wenn Sie Sequelize, verwenden Configure Connection-Pool und Import sequelize Modell in Ihre js Datei gehen und direkt können Sie die DB-Abfrage.

+0

Ich glaube nicht, dass Sie richtig verstanden, was ich gefragt habe. Ich weiß über das Verbindungs-Pooling Bescheid, ich mache es bereits, wenn Sie sich den Code ansehen, den ich eingefügt habe. Ich frage mich nur, ob die Anforderung von "node-mysql" immer wieder in jedem Controller eine schlechte Übung ist oder nicht. Und wenn es ist, was ist die bessere Alternative? – Eduard

+1

erfordern node-mysql immer wieder nicht, aber es ist nicht der richtige Weg, es zu tun. Sie können aber 'var pool = require ('mysql'). CreatePool (opts);' exportieren und verwenden. – Jay

+0

Ok, also habe ich festgestellt, dass für jedes Objekt, das ich oft initialisiere, es besser ist, es bereits in einem Modul zu "initialisieren" und es überall dorthin zu exportieren, wo ich es brauche. Für mich ergibt das Sinn. Vielen Dank. – Eduard