2016-09-29 2 views
0

Ich habe eine Config-Datei mit diesem Code:Variable Export in Knoten

const email = { 
    persistentUserModel: Users, 
    expirationTime: 600, // 10 minutes 

    verificationURL: 'http://localhost:8000/email-verification/${URL}', 
    transportOptions: { 
    service: 'Gmail', 
    auth: { 
     user: '[email protected]', 
     pass: 'myPassword' 
    } 
    }, 

    hashingFunction: myHasher, 
    passwordFieldName: 'pw' 
} 

var configuration = Object.assign({ 
    host: process.env.HOST || 'localhost', 
    port: process.env.PORT || 3000, 
    databaseUrl: process.env.MONGO_URL || 'mongodb://localhost/cervezas', 
    uploadsDir: path.join(__dirname, 'static', 'uploads'), 
    auth, 
    email 
}, environment) 

module.exports = configuration 

Eslint geben Sie mir einige Fehler: - Benutzer nicht definiert ist - myHasher nicht

In einer anderen Datei definiert wird, in dem ich lade diese Konfigurationsdatei, und wo ich das Modell benötigen und die Funktion:

var myHaser= require('myHasher'); 
var Users = require('../models/Users') 
.... 
nev.configure(configuration.email); 

ich will nicht das Modell und die Funktion in der Konfigurationsdatei verlangen Es ist nur eine Konfigurationsdatei.

Was ist der richtige Weg, es zu tun?

+0

Wie können Sie diesen 'user' Wert in Config-Datei' persistentUserModel: Users, '? – abdulbarik

Antwort

0

hier ist mein Beispielcode, der Ihre Anforderung implementieren:

var serverConfig = {}; 


serverConfig.MySqlConfig = { 
    MysqlUsername: "root", 
    MySqlPassword: "", 
    MySqlHost: "127.0.0.1", 
    MySqlDbName: "Geomat" 

}; 

serverConfig.ServerPort = { 
    Administrator: 1234, 
    Geomat: 8888, 
    Bank: 1366 
}; 


serverConfig.default = 
{ 
    Debug: true 
}; 

exports.serverConfig = serverConfig; 

und benötigen in Ihrem Hauptprogramm wie folgt aus:

var serverConfig = require('./serverConfig').serverConfig; 

und Nutzung:

this.io = require('socket.io').listen(serverConfig.ServerPort.Geomat); 

einige Notiz Ihr Code:

  • Sie verwenden const, die gerade in Strict-Modus erlaubt ist oder ES6
  • Sie einen Objektwert zuweisen, die Dosis nicht existieren/implementieren in Ihrer präsentiert Konfigurationsdatei

persistentUserModel : Benutzer,

+0

Ja, ich benutze Babel zum Umsetzen von Code. Die Frage ist, wie kann ich das persistentUserModel oder meine hashingFunction definieren, ohne es in der conf-Datei zu implementieren? – user2670996

+0

Sie meinen, Sie haben einen dynamischen Parameter (oder etwas ähnliches) in Ihrer Konfigurationsdatei? –

+0

Ja, ein dynamischer Parameter. – user2670996

Verwandte Themen