рдлреНрд░рдВрдЯ рдПрдВрдб рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рднрд╛рдЧ 3 - рдлрд╝реЙрдиреНрдЯ рдЕрдиреБрдХреВрд▓рди

рдПрдХ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдпрд╣ рдореЛрдЬрд╝рд┐рд▓рд╛ рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рдЯреАрдо рд╕реЗ 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 рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ "





рд╣рдо рдлреЛрдВрдЯ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, 300% рд╕реЗ 45 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рддрдХ рдкрд░реНрд╕рди рдХреЗ рд▓рд┐рдП рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ 85% рддрдХ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред рдпрд╣ рдЖрд▓реЗрдЦ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдФрд░ рд╣рдордиреЗ рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдХрд╛ рдкрд░рд┐рдЪрдп


рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ , рдХрдиреЗрдХреНрдЯ рдХрд╛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╣реИ рдЬреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреА рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдлреЛрдВрдЯ рдХреЗ рд╕рдмрд╕реЗрдЯ рд╡рд┐рддрд░рд┐рдд рдХрд░рдХреЗ @font-face рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХрд╛ рдЖрдХрд╛рд░ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ IE9 + рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрд▓ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢реИрд▓рд┐рдпреЛрдВ @font-face рдФрд░ рдХреЙрд░реНрд╕ рд╣реЗрдбрд░ рднреА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдлреЛрдВрдЯ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрдерд╛рдХрдерд┐рдд рдлреЙрдиреНрдЯ рдкреИрдХ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдлреЛрдВрдЯ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг JSON рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ред рдЖрдо рдУрдкрди рд╕реЛрд░реНрд╕ рдлреЛрдВрдЯ рдХреЗ рдХреБрдЫ рд╕реЗрдЯ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдлреЛрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╣рдордиреЗ рд╡рд┐рд╖рдп @font-face рдкрд░ рд▓рд┐рдВрдХ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рд╣реИ ред [ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдФрд░ Habr├й рдкрд░ рд╡реЗрдм рдлреЛрдВрдЯ рдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд▓реЗрдЦ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ ]

рд╕реНрдерд┐рд░ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдлрд╝реЙрдиреНрдЯ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ


рдЬрдм рдЖрдк рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд╕ рдПрдХ рдмрдбрд╝реА рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛрддрд╛ рд╣реИ:

  1. рдЕрдкрдиреА CSS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ @font-face block рд▓рд┐рдЦреЗрдВ;
  2. TTF рдпрд╛ OTF рдореЗрдВ рд╕реНрд░реЛрдд рд╕реЗ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдлреЙрдиреНрдЯ рдлрд╛рдЗрд▓реНрд╕ рдЬреЗрдирд░реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд░рдЦреЗрдВ, рдЬрд┐рд╕ рддрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА рдкрд╣реБрдБрдЪ рд╣реЛ;
  3. рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ IE9 + рдХреА рдПрдХ рд╣реА рд╕реНрд░реЛрдд рдиреАрддрд┐ рд╕реЗ рдлреЛрдВрдЯ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдХреЙрд░реНрд╕ рд╣реЗрдбрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдбреЛрдореЗрди рд╕реЗ рдлреЛрдВрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрддреЗ рд╣реИрдВред

рдпреЗ рд╕рд░рд▓ рдХрджрдо рд╣реИрдВред рдкрд╣рд▓реЗ рджреЛ рдХреЛ рдФрд░ рднреА рдЖрд╕рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, FontSquirrel , рдПрдХ рдСрдирд▓рд╛рдЗрди рдлрд╝реЙрдиреНрдЯ рдЬрдирд░реЗрдЯрд░ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ CSS рдХреЛрдб рдмрдирд╛рдПрдЧрд╛ред CORS рд╣реЗрдбрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Apache рдпрд╛ Nginx рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдлреЛрдВрдЯ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рдкреВрд░рд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЪреАрдЬреЗрдВ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдЖрдкрдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ @font-face рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рд╡реЗ рд╕рд╣реА URL рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред рдЖрдкрдХреЛ рдХреЙрд░реНрд╕ рд╕реЗ рднреА рдирд┐рдкрдЯрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИрдВред

рдлрд╝реЙрдиреНрдЯ рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрд╢рди: рдПрдХ рдЕрд╡рд▓реЛрдХрди


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдХрдИ рд╡рд░реНрдг рд╣реЛрддреЗ рд╣реИрдВ - рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛, рдлреНрд░реЗрдВрдЪ рдпрд╛ рдЬрд░реНрдорди рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрдЯреНрд░реАрдЯрд┐рдХреНрд╕, рдЧреНрд░реАрдХ рдпрд╛ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдЬреИрд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдХреНрд╖рд░ред рдХрдИ рдлреЛрдВрдЯ рдореЗрдВ рд╡рд░реНрдг рднреА рд╣реЛрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рд╡реЗ рдпреВрдирд┐рдХреЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдиреЛрдореИрди рдЪрд░рд┐рддреНрд░ - )ред рдЪрд┐рддреНрд░рд▓рд┐рдкрд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдлреЛрдВрдЯ рднреА рд╣реИрдВред рдпрд╣ рд╕рдм рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рд╡реНрдпрд╛рдкрдХ рд╕рдВрднрд╡ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛред рдпрд╣ рд▓рдЪреАрд▓рд╛рдкрди рдмрдбрд╝реЗ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред Microsoft рдПрд░рд┐рдпрд▓ рдпреВрдирд┐рдХреЛрдб, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА Uncode 2.1 рдЕрдХреНрд╖рд░ рд╣реИрдВ, рдХрд╛ рд╡рдЬрди рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп 22 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╣реИ!

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

рдлреЛрдВрдЯ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн


рдЪрд▓реЛ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЖрдо рдлреЛрдВрдЯ рдХреА рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЪрд▓рддреА рд╣реИ, рддреЛ рдЖрдк рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рдмрд╕реЗрдЯ рдЬрд╛рд░реА рдХрд░рдХреЗ рдмрд╣реБрдд рдмрдЪрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЫреЛрдЯреЗ рдлрд╝реЙрдиреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдлреЛрдВрдЯред рдпрд╣ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 2 рдЬреА рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдкреГрд╖реНрда рдХрд╛ рд╡рдЬрди 50 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХрдо рдХрд░рдиреЗ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрддрд┐ 2-3 рд╕реЗрдХрдВрдб рддрдХ рдмрдврд╝ рд╕рдХрддреА рд╣реИред рдПрдХ рдЕрдиреНрдп рдмрд┐рдВрджреБ - рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХреИрд╢ рдЕрдХреНрд╕рд░ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдХреЗ рд╕рд╛рде рдУрдкрди рд╕реИрдиреНрд╕ рдХреА рдирд┐рдпрдорд┐рдд рдкреВрд░реНрдг рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдХреА рддреБрд▓рдирд╛:


Gzip рд╕рдВрдХреБрдЪрд┐рдд рд░реВрдк рдореЗрдВ рд╕рдорд╛рди:


рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд╕рд╛рде рднреА, рдЖрдк рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдХреЛ 80% рд╕реЗ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, 63 рд╕реЗ 13 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рддрдХ, рдпрджрд┐ рдЖрдк рдУрдкрди рд╕рдВрд╕ рдХреЗ рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдмрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝реЙрдиреНрдЯ рд╣реИ - рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд╛рдЗрдЯреЗрдВ рдХрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рдХреНрд╖рдорддрд╛!

рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдореЛрдЬрд╝рд┐рд▓рд╛ рдкрд░реНрд╕рди рдореЗрдВ 300 рд╕реЗ 45 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рддрдХ 85% рдХреА рдХрдореА рд╣рд╛рд╕рд┐рд▓ рдХреАред рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ 3 рдЬреА рдХрдиреЗрдХреНрд╢рди рдкрд░ 2 рд╕реЗрдХрдВрдб рдХреЗ рдмреВрдЯ рд╕рдордп рдФрд░ 2 рдЬреА рдкрд░ рдПрдХ рджрд░реНрдЬрди рд╕реЗрдХрдВрдб рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

рдЖрдЧреЗ рдЕрдиреБрдХреВрд▓рди


рдпрджрд┐ рдЖрдк рд╣рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдЯ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд▓реМрдЯрд╛рдП, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд┐рд╕реЗ рд╕рд╛рдЭрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдПрдХ рдиреНрдпреВрдирддрдо @font-face рдШреЛрд╖рдгрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдЙрди рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдЖрд╡реЗрджрди рдЙрджрд╛рд╣рд░рдг


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдмрддрд╛рддрд╛ рд╣реИ:

 // app.js const ejs = require('ejs'), express = require('express'), fs = require('fs'); var app = express.createServer(), tpl = fs.readFileSync(__dirname, '/tpl.ejs', 'utf8'); app.get('/time', function(req, res) { var output = ejs.render(tpl, { currentTime: new Date() }); res.send(output); }); app.listen(8765, '127.0.0.1'); 

рд╕рдмрд╕реЗ рдЖрджрд┐рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:

 // tpl.ejs <!doctype html> <p>the time is <%= currentTime %> 

рд╣рдо рдУрдкрди рд╕реЗрдиреНрд╕ рдХреЗ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдмрд╕реЗрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдХреЛ рдЬреЛрдбрд╝реЗрдВрдЧреЗ - рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрдИ рддреИрдпрд╛рд░ рд╕реЗрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред

рдЖрд╡реЗрджрди рдкрд░рд┐рд╡рд░реНрддрди


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

  $ npm install connect-fonts $ npm install connect-fonts-opensans 

рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

  // app.js     connect-fonts const ejs = require('ejs'), express = require('express'), fs = require('fs'), // : connect_fonts = require('connect-fonts'), opensans = require('connect-fonts-opensans'); var app = express.createServer(), tpl = fs.readFileSync(__dirname, '/tpl.ejs', 'utf8'); 

рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ:

 //  app.js //    app.use: app.use(connect_fonts.setup({ fonts: [opensans], allow_origin: 'http://localhost:8765' }) 

connect_fonts.setup() рдирд┐рдореНрди рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ:


рдорд╛рд░реНрдЧ рдХреЗ рдЕрдВрджрд░, рдЖрдкрдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд▓реЛрдХреЗрд▓ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

  //  app.js app.get('/time', function(req, res) { var output = ejs.render(tpl, { //    : userLocale: detectLocale(req), currentTime: new Date() }); res.send(output); }); 

Mozilla Persona рд▓реЛрдХреЗрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП i18n- abide рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓реЛрдХреЗрд▓ рдореЙрдбреНрдпреВрд▓ рднреА рд╣реИ, рдЬреЛ рджреЛрдиреЛрдВ npm рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо Accept-language рдЕрдиреБрд░реЛрдз рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдкрд╣рд▓реЗ рджреЛ рдЕрдХреНрд╖рд░ рд▓реЗрддреЗ рд╣реИрдВ:

  //    function detectLocale(req) { return req.headers['accept-language'].slice(0,2); } app.listen(8765, '127.0.0.1'); //  app.js 

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░рд┐рд╡рд░реНрддрди


рдЕрдм рдЖрдкрдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдЧреНрд░рд╣рдг рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 /:locale/:font-list/fonts.css 

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 /fr/opensans-regular,opensans-italics/fonts.css 

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдЙрд╕ рдкрде рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд░рдЦрддрд╛ рд╣реИ:

 // tpl.ejs -   connect-fonts <!doctype html> <link href="/<%= userLocale %>/opensans-regular/fonts.css" rel="stylesheet"> 

рдФрд░ рдкреЗрдЬ рдХреЛрдб рдореЗрдВ рдПрдХ рдлрд╝реЙрдиреНрдЯ рд╢реИрд▓реА рдЬреЛрдбрд╝реЗрдВ:

  //  tpl.ejs <style> body { font-family: "Open Sans", "sans-serif"; } </style> <p>the time is <%= currentTime %> 

рд╡рд╣ рд╕рдм рд╣реИред рдХрдиреЗрдХреНрдЯ-рдлреЛрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╕реАрдПрд╕рдПрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕реНрдерд╛рди рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЕрдВрдЧреНрд░реЗрдЬреА рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  *      ua   'all' */ @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; src: url('/fonts/en/opensans-regular.eot'); src: local('Open Sans'), local('OpenSans'), url('/fonts/en/opensans-regular.eot#') format('embedded-opentype'), url('/fonts/en/opensans-regular.woff') format('woff'), url('/fonts/en/opensans-regular.ttf') format('truetype'), url('/fonts/en/opensans-regular.svg#Open Sans') format('svg'); } 

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдПрдХрд▓ HTTP рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк CSS рдХреЛрдб рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП connect_fonts.generate_css() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп CSS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рд╣рдорд╛рд░рд╛ рдЫреЛрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рд╕рдордп рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб Github рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рд╣рдордиреЗ рдПрдХ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рдлрд╝реЙрдиреНрдЯ рдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдирд╛рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдирд┐рд░реНрджреЗрд╢ рд░реАрдбрдореА рдореЗрдВ рд╣реИред

Zklyuchenie


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

рдЖрдЧреЗ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдЙрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╕рднреА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╡рд┐рдВрдбреЛрдЬ), рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдлрд╝реЙрдиреНрдЯ рд╕рдВрдкреАрдбрд╝рди, рдФрд░ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рд╕реЗрдЯ рдХрд░рдирд╛ред



рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рд▓реЗрдЦ:
  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/In197370/


All Articles