Я пытаюсь разработать класс со статическими методами в приложении NodeJs в качестве цели модуля Config.
Я хотел бы получить к нему доступ из разных модулей без создания экземпляра каждый раз при новом объекте.Класс экспорта NodeJS со статическими методами
1) Правильно ли использовать такой подход, как показано ниже, избегая прототипа класса?
function Config(){
}
Config.svrPort=function(){
return 8080;
}
Config.dbName=function(){
return "myDbName";
}
module.exports = Config;
2) Есть ли другие решения?
3) Является ли это также действительным подходом к размещению разных объектов в одном модуле (например, config.js)?
exports.server=function(){
return{
port:8080
};
};
exports.database=function(){
return{
name:"myDbName",
user:"root",
password:"myPassword",
host:"localhost",
port:3306
};
};
и, наконец, использовать его как:
var config = require('./config');
config.server().port
config.database().name
почему не только литерал объекта? –
Это правильный подход, хотя в вашем примере вы можете просто сохранить значения в качестве примитивов: 'Config.SVR_PORT = 8080', также обратите внимание, что я переписал их как« константы », так как я не рекомендую менять статику. – andlrc
Я согласен с @ dev-null. Просто используйте 'var Config = {SVG_PORT: 8080, ...}'. Вы также можете использовать 'Object.freeze'. – Louy