Node.js рдЧрд╛рдЗрдб, рднрд╛рдЧ 2: рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, V8, рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рдЯреНрд░рд┐рдХреНрд╕

рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ Node.js рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдХреЗ, рд╣рдордиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рджрд░реНрд╢рдХреЛрдВ рдХреА рд░рд╛рдп рдЬрд╛рдирдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдорддрджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдореЗрдВ рд▓рдЧрднрдЧ 94% рдиреЗ рд╣рдорд╛рд░реА рдкрд╣рд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ред рддреЛ Node.js. рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ



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

[рд╣рдо рдЖрдкрдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ] рдЪрдХреНрд░ рдХреЗ рдЕрдиреНрдп рднрд╛рдЧ
рднрд╛рдЧ 1: рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЖрд░рдВрдн рдХрд░рдирд╛
рднрд╛рдЧ 2: рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, V8, рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЧреБрд░
рднрд╛рдЧ 3: рд╣реЛрд╕реНрдЯрд┐рдВрдЧ, рдЖрд░рдИрдкреАрдПрд▓, рдХрдВрд╕реЛрд▓, рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рднрд╛рдЧ 4: npm, package.json рдФрд░ package-lock.json рдлрд╛рдЗрд▓реЗрдВ
рднрд╛рдЧ 5: npm рдФрд░ npx
рднрд╛рдЧ 6: рдИрд╡реЗрдВрдЯ рд▓реВрдк, рдХреЙрд▓ рд╕реНрдЯреИрдХ, рдЯрд╛рдЗрдорд░
рднрд╛рдЧ 7: рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рднрд╛рдЧ 8: Node.js рдЧрд╛рдЗрдб, рднрд╛рдЧ 8: HTTP рдФрд░ WebSocket рдкреНрд░реЛрдЯреЛрдХреЙрд▓
рднрд╛рдЧ 9: Node.js рдЧрд╛рдЗрдб, рднрд╛рдЧ 9: рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
рднрд╛рдЧ 10: Node.js рдЧрд╛рдЗрдб, рднрд╛рдЧ 10: рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓, рд╕реНрдЯреНрд░реАрдо, рдбреЗрдЯрд╛рдмреЗрд╕, NODE_ENV
Node.js рдЧрд╛рдЗрдб рдХреА рдкреВрд░реНрдг рдкреАрдбреАрдПрдл

Node.js рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ JS рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?


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

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

  • рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдирд┐рд░реНрдорд╛рдгред
  • рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред
  • рдкреНрд░рдХрд╛рд░ред
  • рдЪрд░ред
  • рд╕рдорд╛рд░реЛрд╣ред
  • рдпрд╣ рдХреАрд╡рд░реНрдбред
  • рддреАрд░ рдХрд╛рд░реНрдп
  • рдЪрдХреНрд░
  • рд╕реНрдХреЛрдкред
  • рд╕рд░рдгреАред
  • рдЯреЗрдореНрдкрд▓реЗрдЯ рддрд╛рд░ред
  • рдПрдХ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд▓рд╛рдЧреВ рдХрд░реЗрдВред
  • рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВред

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

  • рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдиред
  • рдЯрд╛рдЗрдорд░ред
  • рд╡рд╛рджрд╛ред
  • Async / рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд┐рд░реНрдорд╛рдгред
  • рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯред
  • рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЪрдХреНрд░ред

рдХрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдордЧреНрд░рд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рднрд╛рд╖рд╛ рд╕реАрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрдХ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдо рд╣реИ, рдпрд╣рд╛рдБ MDN рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЕрдиреБрднрд╛рдЧ рд╣реИ, рдпрд╣рд╛рдБ javascript.ru рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИред рдЖрдк freecodecamp.com рдкрд░ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдВрддреНрд░ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдКрдкрд░, рд╣рдордиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдХрд┐ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧ рдЗрд╕ рд╕рд╡рд╛рд▓ рд╕реЗ рдЪрд┐рдВрддрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмреАрдЪ рд╕реАрдорд╛ рдХрд╣рд╛рдБ рд╣реИред рдЪрд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░


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

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

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

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

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

рдЪреВрдВрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рд╕рднреА рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХреЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдХреБрдЫ рдирдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдмрд╛рдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦреЗрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрдзреБрдирд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдмреЗрд╢рдХ, EcmaScript 5 рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХреЛрдб рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдмрд▓ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ Node.js. рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

Node.js рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдФрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ Node.js CommonJS рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЖрдк ES рдореЙрдбреНрдпреВрд▓ рдорд╛рдирдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╢реБрд░реБрдЖрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Node.js рдореЗрдВ, рдмрд╛рд╣рд░реА рдХреЛрдб рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП require() рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛрдб рдореЗрдВ import рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

V8 рдФрд░ рдЕрдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди


V8 рдЧреВрдЧрд▓ рдХреНрд░реЛрдо рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХрд╛ рдирд╛рдо рд╣реИред рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред V8 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред DOM рдФрд░ рдЕрдиреНрдп рд╡реЗрдм рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо API рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

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

Node.js рдХрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИред рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, V8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐, V8 рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рдЗрдВрдЬрди рд╣реИрдВ:

  • рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ SpiderMonkey рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • рд╕рдлрд╛рд░реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛрд░ (рдЬрд┐рд╕реЗ рдирд╛рдЗрдЯреНрд░реЛ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • рдПрдЬ рдЪрдХреНрд░ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

JS рдЗрдВрдЬрдиреЛрдВ рдХреА рд╕реВрдЪреА рдпрд╣реАрдВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред

рдпреЗ рдЗрдВрдЬрди ECMA-262 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ ECMAScript рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред рдорд╛рдирдХ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

тЦНJS рдЗрдВрдЬрди рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдЖрдХрд╛рдВрдХреНрд╖рд╛


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

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

And рд╡реНрдпрд╛рдЦреНрдпрд╛ рдФрд░ рд╕рдВрдХрд▓рди


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдзреБрдирд┐рдХ рдЗрдВрдЬрди рдХреЗрд╡рд▓ рдЬреЗрдПрд╕ рдХреЛрдб рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рд╕реЗ рджреВрд░ рд╣реИрдВред рд╡реЗ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рд╡реГрддреНрддрд┐ 2009 рд╕реЗ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬрдм рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 3.5 рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрдВрдЬрди рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдиреЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЕрдкрдирд╛рдпрд╛ред

V8 рдХреЛрдб рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред 2004 рдореЗрдВ Google рдореИрдкреНрд╕ рдХреЗ рдЖрдЧрдорди рдХреЗ рдмрд╛рдж рд╕реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИ, рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЖрдорддреМрд░ рдкрд░ рдХреБрдЫ рджрд╕рд┐рдпреЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдХ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣рдЬрд╛рд░реЛрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реИрдХрдбрд╝реЛрдВ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдХреЛрдб рдХреА рд╣рдЬрд╛рд░ рд▓рд╛рдЗрдиреЗрдВред рдРрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдШрдВрдЯреЛрдВ рддрдХ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкреБрд░рд╛рдиреЗ рдЬреЗрдПрд╕ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ, рдХреЛрдб, рдЬрд┐рд╕ рдкрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдлреЙрд░реНрдо рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЪрд░рдг рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдХреЛрдб рдХреЛ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдореЗрдВ рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж рдХреЛрдб рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддреЗрдЬреА рд╕реЗ рдЪрд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЕрдм, рдЬреЗрдПрд╕ рдЗрдВрдЬрди, рд╡реНрдпрд╛рдЦреНрдпрд╛ рдФрд░ рдХреЛрдб рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╛рд╡рдзрд╛рдиреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реБрдП, рдЪрд▓рд┐рдП рдЕрднреНрдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛


Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ ctrl+c рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдХрд╛рдо рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рд╢рд╛рдпрдж, рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХрдареЛрд░ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдм рд╕рдордЭреЗрдВрдЧреЗ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

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

 process.exit() 

рдЬрдм Node.js рдХреЛрдб рдореЗрдВ рдРрд╕реА рдХрдорд╛рдВрдб рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдм рдХреБрдЫ рдЕрд╕рднреНрдп рдФрд░ рдмрд┐рдирд╛ рд╢рд░реНрдд рдмрд╛рдзрд┐рдд рд╣реЛрдЧрд╛ред рд╣рдо рдмрд┐рди рдмреБрд▓рд╛рдП рдХреЙрд▓рдмреИрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рдордп рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, stdout рдпрд╛ stderr рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

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

 process.exit(1) 

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

рдЖрдк process.exitCode рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдПрдХ рдПрдХреНрдЬрд┐рдЯ рдХреЛрдб рднреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 process.exitCode = 1 

рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, Node.js рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред

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

 const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hi!') }) app.listen(3000, () => console.log('Server ready')) 

рдРрд╕рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо, рдЕрдЧрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрджрд┐ рдЖрдк process.exit() рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдЖрджреЗрд╢ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдордп рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдмрд╛рдзрд┐рдд рд╣реЛрдВрдЧреЗред рдФрд░ рдпрд╣ рдмреБрд░рд╛ рд╣реИред

рдРрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ SIGTERM рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЙрдЪрд┐рдд рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ process рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ require рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рднреА рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА require , рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hi!') }) app.listen(3000, () => console.log('Server ready')) process.on('SIGTERM', () => { app.close(() => {   console.log('Process terminated') }) }) 

рд╕рдВрдХреЗрдд рдХреНрдпрд╛ рд╣реИрдВ? рд╕рд┐рдЧреНрдирд▓ POSIX рдорд╛рдирдХ (рдкреЛрд░реНрдЯреЗрдмрд▓ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕) рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХрд╛ рдПрдХ рд╕рд╛рдзрди рд╣реИред рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ рдХреА рд╕реВрдЪрдирд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреЗрдЬреЗ рдЧрдП рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ SIGKILL рд╕рд┐рдЧреНрдирд▓ рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рддреБрд░рдВрдд рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ process.exit() рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

SIGTERM рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╢рдЯрдбрд╛рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдХреЗрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдмрдВрдзрдХреЛрдВ рд╕реЗ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ upstart рдпрд╛ supervisord , рдФрд░ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рд╕реЗред

рдЖрдк рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рд╣реА рдРрд╕рд╛ рд╕рдВрдХреЗрдд рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ:

 process.kill(process.pid, 'SIGTERM') 

рдЗрд╕ рддрд░рд╣ рдХреА рдХрдорд╛рдВрдб рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ PID рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ PID рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдЖрдк рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред

Node.js рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкрдврд╝рдирд╛


process рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ env рдЧреБрдг рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╕рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ NODE_ENV рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, development рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ:

 process.env.NODE_ENV // "development" 

рдпрджрд┐, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ production рд╕реЗрдЯ рдХрд░реЗрдВ, рддреЛ рдпрд╣ Node.js рдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдЗрд╕реА рддрд░рд╣, рдЖрдк рдЕрдиреНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗ рдЬреЛ рдЖрдк рдЦреБрдж рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо


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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреНрдпрд╛ рд╕реБрдЭрд╛рдПрдВрдЧреЗ?

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


All Articles