6 Stimmen

Wie kann ich die Standortkonfiguration in MongoDB für eine NodeJS Express App speichern?

Ich habe eine Expressjs-Anwendung, die auf NodeJS 0.8.8 unter Verwendung von MongoDB und der Jade-Vorlagensprache ausgeführt wird, und ich möchte dem Benutzer die Möglichkeit geben, viele der standortweiten Präsentationsoptionen wie die Seitentitel, das Logo-Bild usw. zu konfigurieren.

Wie kann ich diese Konfigurationsoptionen in einer MongoDB-Datenbank speichern, so dass ich sie beim Start der Anwendung lesen, während der Ausführung der Anwendung manipulieren und in den Jade-Vorlagen anzeigen kann?

Hier ist mein allgemeines App-Setup:

var app = module.exports = express();
global.app = app;
var DB = require('./accessDB');
var conn = 'mongodb://localhost/dbname';
var db;

// App Config
app.configure(function(){
   ...
});

db = new DB.startup(conn);

//env specific config
app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
}); // etc

// use date manipulation tool moment
app.locals.moment = moment;

// Load the router
require('./routes')(app);

Bisher habe ich ein Modell namens "Site" für die Sammlung "siteConfig" erstellt und ich habe eine Funktion namens getSiteConfig in accessDB.js, die Site.find()... ausführt, um die Felder in dem einen Dokument in der Sammlung abzurufen.

Das ist also der Kern der Frage: Wie sollte ich diese Felder in die Express-App einfügen, damit sie auf der gesamten Website verwendet werden können? Sollte ich dem gleichen Muster folgen, das ich mit dem moment.js-Tool verwendet habe? Etwa so:

db.getSiteConfig(function(err, siteConfig){
  if (err) {throw err;}
  app.locals.siteConfig = siteConfig;
});

Wenn nicht, was wäre dann der richtige Weg, dies zu tun?

Danke!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X