Die Frage ist über Architektur.
Ich habe ein Modul 'db', das eine Verbindung zu mongodb herstellt und eine Klasse mit Schemas, Modellen usw. hat. Ich exportiere ein Exemplar dieser Klasse.
Sollte ich nur verlangen ('db') in jeder Route Datei oder tun dies nur in einem:Knoten js, erfordern überall oder fügen eine Eigenschaft zu req
server.on('request', function(req) {
req.db = db;
});
db.js:
"use strict";
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var conn = mongoose.connection;
conn.on('error', console.error.bind(console, 'connection error:'));
conn.once('open', function() {
console.log("Connected to MongoDB.");
});
class db {
constructor() {
//Users
this._usersSchema = mongoose.Schema(
{
username: String,
password: String,
email: String
});
this.Users = mongoose.model("Users", this._usersSchema);
}
}
module.exports = new db();
Hängt von Ihrem DB-Modul ab. Wenn das Modul die gleiche Instanz jedes Mal erneut verwendet, wenn Sie es benötigen, müssen Sie es nur instanziieren. Wenn nicht, können Sie es weitergeben. Sie müssen jedoch mehr Informationen geben. –
Ich habe einige Informationen über das Modul – Angels
hinzugefügt. Mit Mungo müssen Sie nicht die db-Verbindung übergeben. Verwenden Sie einfach Ihre Schemamodelle, um mit der Datenbank zu interagieren. Das Modul kümmert sich um den Rest. –