рдиреЛрдб-рджреЛрд╖реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЫреЗрдбрд╝рдирд╛

рдПрдХ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдпрд╣ рдореЛрдЬрд╝рд┐рд▓рд╛ рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рдЯреАрдо рд╕реЗ Node.js рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рд╛рддрд╡рд╛рдВ рд▓реЗрдЦ рд╣реИ, рдЬреЛ рдкрд░реНрд╕реЛрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓реЗрдЦ:
  1. " Node.js рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рд▓рд┐рдП рд╢рд┐рдХрд╛рд░ "
  2. "рд╣рдо рдиреЛрдб рдХреЛ рдиреЗрддреНрд░рдЧреЛрд▓рдХ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ "
  3. " рд╣рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рддреНрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ "
  4. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░рдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 1 - рдХреЙрдирд╕реЗрдиреНрдЯреЗрд╢рди, рдХрдореНрдкреНрд░реЗрд╢рди, рдХреИрд╢рд┐рдВрдЧ "
  5. " рд╣рдо рдПрдХ рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд▓реЛрдб рдХреЗ рддрд╣рдд рдХреНрд░реИрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ "
  6. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 2 - рдХреИрдЯреЗрдЧрд┐рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдХрдВрдЯреЗрдВрдЯ рдХреИрд╢рд┐рдВрдЧ "
  7. " рдиреЛрдб-рджреЛрд╖реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЫреЗрдбрд╝рдирд╛ "
  8. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 3 - рдлреЙрдиреНрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди "
  9. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдиреЛрдбреНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 1 "
  10. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 2: рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ "
  11. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 3: рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг "
  12. " Awsbox - рдЕрдореЗрдЬрд╝рди рдХреНрд▓рд╛рдЙрдб рдкрд░ Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП Paas рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ "





Node.js рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдиреЛрдб-рджреЛрд╖реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ, рдЬреЛ рдЖрдкрдХреЗ Node.js рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрд╛рд░рджрд░реНрд╢реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рд╕рд╣реА рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


рджреЛ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмрдирд╛рддреА рд╣реИрдВ:


рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдЪрд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдХреЗ рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ Node.js рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрдирд╛рдирд╛ рд╣реИ:

var conf = { //   - // "production", "development",  "test env: process.env.NODE_ENV || "development", // IP  ip: process.env.IP_ADDRESS || "127.0.0.1", //  port: process.env.PORT || 0, //   database: { host: process.env.DB_HOST || "localhost:8091" } }; module.exports = conf; 

рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:



рдкреЗрд╢ рд╣реИ рджреЛрд╖реА


рдиреЛрдб-рдЗрдирдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдХреАрдо рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЗрди рджреЛрдиреЛрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЬрд╛рдирдХрд╛рд░реА, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдЬрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдлреЙрд░реНрдо рд▓реЗрддрд╛ рд╣реИ:

 var conf = convict({ env: { doc: "The applicaton environment.", format: ["production", "development", "test"], default: "development", env: "NODE_ENV" }, ip: { doc: "The IP address to bind.", format: "ipaddress", default: "127.0.0.1", env: "IP_ADDRESS" }, port: { doc: "The port to bind.", format: "port", default: 0, env: "PORT" }, database: { host: { default: "localhost:8091", env: "DB_HOST" } } }); conf.validate(); module.exports = conf; 

рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд░реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛, рд╕рддреНрдпрд╛рдкрди рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдШреЛрд╖рдгрд╛рддреНрдордХ рдкреНрд░рд╛рд░реВрдк рдЖрд╡реЗрджрди рдХреЛ рд╕рднреА рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рддрд╛ рд╣реИред

рд╕рд░реНрдХрд┐рдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдЧреБрдг рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ:

  1. рдЯрд╛рдЗрдк рдХрд░реЗрдВред format рд╕рдВрдкрддреНрддрд┐ рдпрд╛ рддреЛ рджреЛрд╖реА рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ ( ipaddress , port , int , рдЖрджрд┐) рдпрд╛ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИред рдпрджрд┐ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди рдкреИрд░рд╛рдореАрдЯрд░ рдЯрд╛рдЗрдк рдЪреЗрдХ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред
  2. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди ред рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ред
  3. рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ ред рдпрджрд┐ env, рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  4. рдкреНрд░рд▓реЗрдЦрдиред doc рд╕рдВрдкрддреНрддрд┐ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИред рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдкрд░ рдПрдХ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рд╕рд╣рд┐рдд рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП conf.toSchemaString() рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрддрд░


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреА рдиреАрдВрд╡ рдкрд░, рдЖрдк рдХреЙрд▓ conf.load() рдФрд░ conf.loadFile() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрддрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 var conf = convict({ //   ,      }); if (conf.get('env') === 'production') { //          conf.load({ port: 8080, database: { host: "ec2-117-21-174-242.compute-1.amazonaws.com:8091" } }); } conf.validate(); module.exports = conf; 

рдпрд╛ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ conf.loadFile() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХрд░ conf.loadFile() :

 conf.loadFile('./config/' + conf.get('env') + '.json'); 

loadFile() рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдПрдХ рддрд░реНрдХ рджреЗрддреЗ рд╣реИрдВ:

 // CONFIG_FILES=/path/to/production.json,/path/to/secrets.json,/path/to/sitespecific.json conf.loadFile(process.env.CONFIG_FILES.split(',')); 

рд▓реЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ load() рдФрд░ load() - loadFile() рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШреЛрд╖рдгрд╛рддреНрдордХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдФрд░ рдЪреВрдВрдХрд┐ рдлрд╛рдЗрд▓реЗрдВ cjson рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВ , рдЗрд╕рд▓рд┐рдП рдЙрдирдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдФрд░ рднреА рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рддреА рд╣реИрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ load() рдФрд░ loadFile() рдорд╛рдзреНрдпрдо рд╕реЗ рднрд░реА рдЧрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реА рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдЖрдк conf.toString() рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

"V" рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕рддреНрдпрд╛рдкрди


рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдирдХреЗ рдкрд╛рд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рд╣реИред рд╕рдЬрд╛ рдореЗрдВ рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рд╛рд░реВрдк рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ url , ports рдпрд╛ ipaddress , рдФрд░ рдЖрдк рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд JavaScript рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ (рдЬреИрд╕реЗ Number ) рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ format рдЧреБрдг рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рджреЛрд╖реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ ( Object.prototype.toString.call рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ )ред рдиреАрдЪреЗ рджреА рдЧрдИ рддреАрди рдпреЛрдЬрдирд╛рдПрдБ рд╕рдорддреБрд▓реНрдп рд╣реИрдВ:

 var conf1 = convict({ name: { format: String default: 'Brendan' } }); //    , ,     //  ,      var conf2 = convict({ name: { default: 'Brendan' } }); //    var conf3 = convict({ name: 'Brendan' }); 

рдкреНрд░рд╛рд░реВрдк рдХреЛ рдПрдХ рдЧрдгрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡реИрдз рдореВрд▓реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ["production", "development", "test"] ред рдХреЛрдИ рднреА рдореВрд▓реНрдп рдЬреЛ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд╕рддреНрдпрд╛рдкрди рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ 64 рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдЕрдВрдХреЛрдВ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ:

 var check = require('validator').check; var conf = convict({ key: { doc: "API key", format: function (val) { check(val, 'should be a 64 character hex key').regex(/^[a-fA-F0-9]{64}$/); }, default: '3cec609c9bc601c047af917a544645c50caf8cd606806b4e0a23312441014deb' } }); 

conf.validate() рдХреЙрд▓ рдкреНрд░рддреНрдпреЗрдХ рдЧрд▓рдд рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рдПрдЧрд╛, рдпрджрд┐ рдХреЛрдИ рд╣реЛред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рдиреЗ рдкрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ 'foo' рд▓рд┐рдП key рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:

 conf.set('key', 'foo'); conf.validate(); // Error: key: should be a 64 character hex key: value was "foo" 

рдирд┐рд╖реНрдХрд░реНрд╖


рдиреЛрдб-рджреЛрд╖реА рдорд╛рдирдХ Node.js рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпреЛрдЬрдирд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреАрдо рдХреЛ рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рджреЗрддреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╢реАрдШреНрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред



рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓реЗрдЦ:
  1. " Node.js рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рд▓рд┐рдП рд╢рд┐рдХрд╛рд░ "
  2. "рд╣рдо рдиреЛрдб рдХреЛ рдиреЗрддреНрд░рдЧреЛрд▓рдХ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ "
  3. " рд╣рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рддреНрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ "
  4. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░рдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 1 - рдХреЙрдирд╕реЗрдиреНрдЯреЗрд╢рди, рдХрдореНрдкреНрд░реЗрд╢рди, рдХреИрд╢рд┐рдВрдЧ "
  5. " рд╣рдо рдПрдХ рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд▓реЛрдб рдХреЗ рддрд╣рдд рдХреНрд░реИрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ "
  6. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 2 - рдХреИрдЯреЗрдЧрд┐рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдХрдВрдЯреЗрдВрдЯ рдХреИрд╢рд┐рдВрдЧ "
  7. " рдиреЛрдб-рджреЛрд╖реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЫреЗрдбрд╝рдирд╛ "
  8. " рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ред рдкрд╛рд░реНрдЯ 3 - рдлреЙрдиреНрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди "
  9. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдиреЛрдбреНрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 1 "
  10. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 2: рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ "
  11. " рд╕реНрдерд╛рдиреАрдпрдХрд░рдг Node.js. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд╛рдЧ 3: рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг "
  12. " Awsbox - рдЕрдореЗрдЬрд╝рди рдХреНрд▓рд╛рдЙрдб рдкрд░ Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП Paas рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ "

Source: https://habr.com/ru/post/In197166/


All Articles