2015-09-11 2 views
1

J'utilise expressjs et je veux stocker des variables de configuration de projet dans la base de données pour une raison quelconque. Quel est le meilleur moyen d'accéder aux variables de configuration à partir de la base de données, donc je n'aurai pas besoin d'interroger la base de données sur chaque routeur que je charge.Accès global de config à partir de la base de données dans express js

Dois-je utiliser app.locals?

+0

Avez-vous envisagé de créer un fichier nommé 'confi.json' avec les informations de configuration et de l'importer dans' app.js'? Ce fichier pourrait être la base de données de la config. –

+0

mes configs sont stockés dans la base de données. Est-ce que json pourra interroger la base de données? – VK321

+0

Comment interrogez-vous la base de données (mongoose, sequelize, etc) et quelle configuration peut être rechargée? –

Répondre

0

Pour ce faire, je n'exporte pas directement le "routeur" mais une fonction qui accepte un argument qui recevra la config. Voici un exemple:

// router.js 
module.exports = function(database) { 
    return { 
    getLogin: function(req, res) { 
     // database exist here 
    } 
    } 
} 

// app.js without the creation of app and database 
var app = express(); 
var database = require('./database'); 

var router = require('./router')(database) 
app.get('/login', getLogin); 

De cette façon, vous avez la modularité et la possibilité d'interagir facilement avec la base de données.

+0

Merci @ swatto mais de cette façon si j'ai 20 routeurs, je vais devoir ajouter cette fonction dans chaque fichier? – VK321