2016-09-29 71 views
0

我有這個代碼的配置文件:可變出口在節點

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給我一些錯誤: - 用戶沒有定義 - myHasher沒有定義

在另一個文件是在哪裏我加載這個配置文件,並在那裏我需要的型號和功能:

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

我不想要求配置文件中的模型和功能作爲它只是一個配置文件。

什麼是正確的方法來做到這一點?

+0

你怎麼能得到這個'用戶'值在配置文件'persistentUserModel:Users,'? – abdulbarik

回答

0

這裏實現你的要求,我的示例代碼:

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; 

,需要你的主程序裏面是這樣的:

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

與用法:

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

一些備註您的代碼:

  • 您使用常量,這只是允許嚴格模式ES6
  • 分配該劑量不存在/在你提出的配置文件

persistentUserModel實施對象值:用戶,

+0

是的,我使用babel來編譯代碼。問題是我如何定義persistentUserModel或我的hashingFunction而不在conf文件中實現它? – user2670996

+0

你的意思是你的配置文件中有一個動態參數(或者類似的東西)? –

+0

是的,一個動態參數。 – user2670996