рд╣рдо рдЙрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП Node.js
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЕрдиреБрд╡рд╛рдж рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, "рд╢реБрд░реБрдЖрддреА" рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬрд┐рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдХреБрдЫ рдЬреНрдЮрд╛рди рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реБрдирд╛ рдХрд┐ рдПрдХ рд╕рд░реНрд╡рд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рднреА рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдФрд░ рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдЖрдк рдпрд╣рд╛рдВ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдкрд╛рдПрдВрдЧреЗ, рднрд▓реЗ рд╣реА рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Node.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_ENVNode.js рдЧрд╛рдЗрдб рдХреА рдкреВрд░реНрдг рдкреАрдбреАрдПрдл Node.js рдХреА рд╕рдореАрдХреНрд╖рд╛
Node.js рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред 2009 рдореЗрдВ рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рдж рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдЬ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрди рд╕рд┐рддрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЧрд┐рдерд╣рдм рдкрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЗ рд╕рдВрдХреЗрддрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ
Node.js , рдЬрд┐рд╕рдореЗрдВ 50,000 рд╕реЗ рдЕрдзрд┐рдХ рд╕рд┐рддрд╛рд░реЗ рд╣реИрдВ, рдПрдХ рдмрд╣реБрдд рд╣реА рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред
Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо Google рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ V8 рдЗрдВрдЬрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Google Chrome рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдордВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рджрд╛рдпрд░рд╛ рдЗрд╕ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред
Node.js. рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
тЦНSkorost
Node.js рдХреА рдореБрдЦреНрдп рдЖрдХрд░реНрд╖рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЧрддрд┐ рд╣реИред Node.js рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб C рдпрд╛ Java рдЬреИрд╕реА рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рд╕реЗ рджреЛрдЧреБрдирд╛ рддреЗрдЬ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкрд╛рдпрдерди рдпрд╛ рд░реВрдмреА рдЬреИрд╕реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рднрд╛рд╖рд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝реА рд╕реЗ рдСрд░реНрдбрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдордВрдЪ рдХреА рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдгрд╛рдо рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, Node.js рдПрдХ рдмрд╣реБрдд рддреЗрдЬрд╝ рдордВрдЪ рд╣реИред
тЦНProstota
Node.js рдордВрдЪ рд╕реАрдЦрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдпрд╣ рдХреБрдЫ рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред
тЦНJavaScript
Node.js рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдХреЛрдб рдЪрд▓рд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд▓рд╛рдЦреЛрдВ рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рджреЛрдиреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рдЯреВрд▓ рд╕реАрдЦреЗ рдмрд┐рдирд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рдорд╛рди рднрд╛рд╖рд╛ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Node.js рдореЗрдВ, рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдирдП ECMAScript рдорд╛рдирдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдЖрдкрдХреЛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Node.js рдПрдХ рд╕рд░реНрд╡рд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬрдм рдЖрдк Node.js. рдХрд╛ рд╕рдорд░реНрдерди рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдирдИ рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреА рд╣реИрдВ
EngineV8 рдЗрдВрдЬрди
рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ, Node.js рдХреЗ рджрд┐рд▓ рдореЗрдВ, Google рдХрд╛ рдУрдкрди-рд╕реЛрд░реНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди V8 рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Google Chrome рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ Node.js рдЙрди рд╣рдЬрд╛рд░реЛрдВ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рддреЗрдЬреА рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ 2018 рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред
тЦНAsinhronnost
рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ (рд╕реА, рдЬрд╛рд╡рд╛, рдкрд╛рдпрдерди, рдкреАрдПрдЪрдкреА), рд╕рднреА рдирд┐рд░реНрджреЗрд╢ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╡рд░реБрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдХреБрдЫ JSON рдХреЛрдб рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬрд┐рд╕ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд░рд╕реАрдж рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдПрдХрд▓ рдереНрд░реЗрдб, рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдХреЙрд▓рдмреИрдХ) рдФрд░ рдПрдХ рдЗрд╡реЗрдВрдЯ-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдирд╛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдореЗрдВ рдПрдХ рднрд╛рд░реА рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдЙрдкрдпреБрдХреНрдд рдХреЙрд▓рдмреИрдХ рддрдВрддреНрд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдирддреАрдЬрддрди, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рддрдВрддреНрд░ рдЙрддреНрдкрдиреНрди рд╣реБрдЖред рд╣рдо AJAX рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, AJAX рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡реЗрдм рдкреЗрдЬ, рд╕рдм рдХреБрдЫ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рдФрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕рд╛рде рдШрдЯрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрдВрддреНрд░ рдПрдХрд▓ Node.js рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рд╕рд╛рде рд╣рдЬрд╛рд░реЛрдВ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ред рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рдЕрдХреНрд╕рд░ рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕реНрд░реЛрдд рд╣реЛрддреА рд╣реИрдВред
Node.js рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдмреБрдирд┐рдпрд╛рджреА рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, Node.js рдврд╛рдВрдЪреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирдХ рдХреЗ рдмрдЬрд╛рдп рдЕрд╡рд░реЛрдзрдХ рдХреЛрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдкрд╡рд╛рдж рдмрдирд╛рддрд╛ рд╣реИред
рдЬрдм Node.js рдХреЛ I / O рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛, рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, Node.js рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрдм рддрдХ рдЕрдиреНрдп рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЬрдм рддрдХ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
тЦНBiblioteki
Npm.js рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рд╛рджрдЧреА рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, Node.js рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рд╕рдВрдкрдиреНрди рд╣реИред рдЕрдм
npm рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЖрдзреЗ рдорд┐рд▓рд┐рдпрди рд╕реЗ рдЕрдзрд┐рдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреИрдХреЗрдЬ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА Node.js рдбреЗрд╡рд▓рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдХреБрдЫ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЪрд▓реЛ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
Node.js рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
Node.js рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдм рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рд▓рд┐рдП, рд╕рднреА рдкреНрд░рдореБрдЦ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдкреИрдХреЗрдЬ
рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ
рд╣реИрдВ ред
Node.js рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, macOS рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ, рдЬреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рд╣реИ,
рд╣реЛрдордмреНрд░реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣реИ, рддреЛ рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдХрд░ Node.js рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
brew install node
рд▓рд┐рдирдХреНрд╕ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рд╕рд╣рд┐рдд рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА
рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред
Node.js рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдмрдВрдзрдХ
nvm рд╣реИ ред рдпрд╣ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ Node.js рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Node.js рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЖрдЬрд╝рдорд╛рдПрдВ, рдФрд░ рдлрд┐рд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкреБрд░рд╛рдиреЗ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВред Nvm рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ Node.js. рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХреБрдЫ рдХреЛрдб рдЖрдЬрд╝рдорд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдореИрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Node.js рдЗрдВрд╕реНрдЯреЙрд▓рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ред MacOS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ Homebrew рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Node.js рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ред рдЕрдм рдЬрдм рдЖрдкрдиреЗ Node.js рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
рдкрд╣рд▓рд╛ Node.js рдЖрд╡реЗрджрди
Node.js рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдЖрд╡реЗрджрди рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╣реИред рдпрд╣рд╛рдБ рдЙрд╕рдХрд╛ рдХреЛрдб рд╣реИ:
const http = require('http') const hostname = '127.0.0.1' const port = 3000 const server = http.createServer((req, res) => { res.statusCode = 200 res.setHeader('Content-Type', 'text/plain') res.end('Hello World\n') }) server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`) })
рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ
server.js
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
node server.js
рд╕рд░реНрд╡рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓реЗрдВ рдФрд░ рдкрддрд╛ рдмрд╛рд░ рдореЗрдВ http:
http://127.0.0.1:3000
рджрд░реНрдЬ рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рдд, рд╕рд░реНрд╡рд░ рдкрддрд╛ рдЬреЛ рдХрд┐ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЗрдП рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдб рдореЗрдВ
http рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрдорд╛рдВрдб рд╢рд╛рдорд┐рд▓ рд╣реИред
Node.js рдордВрдЪ
рдореЙрдбреНрдпреВрд▓ рдХреЗ рдПрдХ рдЕрджреНрднреБрдд
рдорд╛рдирдХ рд╕реЗрдЯ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рддрдВрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
http
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛
createServer()
рд╡рд┐рдзрд┐ рдПрдХ рдирдпрд╛ HTTP рд╕рд░реНрд╡рд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╣реЛрд╕реНрдЯ рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рд╕рд░реНрд╡рд░ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЬрдм рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ
request
рдЗрд╡реЗрдВрдЯ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╣реИ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ (
req
,
http.IncomingMessage object), рджреВрд╕рд░рд╛ рд╣реИ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ (
res
,
http.ServerResponse рдСрдмреНрдЬреЗрдХреНрдЯ)ред рд╡реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг HTTP рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрдВрддреНрд░ рд╣реИрдВред
рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ
req
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЕрдиреБрд░реЛрдз рд╣реЗрдбрд░ рдФрд░ рдЗрд╕рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдиреБрд░реЛрдз рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЕрдиреБрд░реЛрдз рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
200
рд▓рд┐рдП
statusCode
рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗрдЯ рдХрд░реЗрдВ, рдЬреЛ рд╕рдлрд▓ рдСрдкрд░реЗрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:
res.statusCode = 200
рдЕрдЧрд▓рд╛, рд╣рдо
Content-Type
рд╣реЗрдбрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
res.setHeader('Content-Type', 'text/plain')
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо
end()
рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рддреИрдпрд╛рд░реА рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ:
res.end('Hello World\n')
рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдХрд╣ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ Node.js рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рд╣рдо Node.js. рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓реЛрдХрдкреНрд░рд┐рдп рдЪреМрдЦрдЯреЗ рдФрд░ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред
Node.js рдХреЗ рд▓рд┐рдП рдЪреМрдЦрдЯреЗ рдФрд░ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг
Node.js рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдП рдЧрдП рдереЗред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЧрдП рд╣реИрдВред рдпрд╣рд╛рдБ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рдЦреЛрдЬ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ:
- рдПрдХреНрд╕рдкреНрд░реЗрд╕ ред рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд▓реЗрдХрд┐рди рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреА рд╕рдлрд▓рддрд╛ рдХреА рдХреБрдВрдЬреА рдПрдХ рдиреНрдпреВрдирддрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдерд╛ рдФрд░ "рдХреЗрд╡рд▓ рд╕рд╣реА" рд╕рд░реНрд╡рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджреГрд╖реНрдЯрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд┐рдП рдмрд┐рдирд╛ рдмреБрдирд┐рдпрд╛рджреА рд╕рд░реНрд╡рд░ рддрдВрддреНрд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред
- рдЙрд▓реНрдХрд╛ ред рдпрд╣ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдкрд░ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЙрд▓реНрдХрд╛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЙрдкрдХрд░рдг рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдХреА рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдм рдпрд╣ рд░рд┐рдПрдХреНрдЯ , рд╡реНрдпреВ рдФрд░ рдПрдВрдЧреБрд▓рд░ рдЬреИрд╕реЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рднреА рдПрдХреАрдХреГрдд рд╣реИред рдЙрд▓реНрдХрд╛, рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдХреЛрдЖ ред рдпрд╣ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдЙрд╕реА рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдЬреЛ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛, рд╕рдорд╛рдзрд╛рди рдХреА рд╕рд╛рджрдЧреА рдФрд░ рдЗрд╕рдХреА рдХреЙрдореНрдкреИрдХреНрдЯрдиреЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдореЗрдВ рдЧрдВрднреАрд░ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА рдЬреЛ рдЕрдиреНрдп рдврд╛рдВрдЪреЗ рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИрдВ рдЬреЛ рд╕рдореБрджрд╛рдп рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- Next.js ред рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рдЕрднрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рд╕реВрдХреНрд╖реНрдо ред рдпрд╣ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ HTTP рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рдХреЙрдореНрдкреИрдХреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред
- рд╕реЙрдХреЗрдЯ ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, Node.js рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ, рдЖрдк рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рд╛рдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред Node.js рдордВрдЪ 2009 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдЕрдкрдиреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рджреМрд░рд╛рди, рдмрд╣реБрдд рдХреБрдЫ рд╣реБрдЖ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдЬреЛ рдЗрд╕ рдордВрдЪ рдХреЛ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
Node.js рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрддрд┐рд╣рд╛рд╕
Node.js рдЗрд╕ рд╕рд╛рд▓ 9 рд╕рд╛рд▓ рдХрд╛ рд╣реИред рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдЗрд╕ рдЙрдореНрд░ рдХреА рддреБрд▓рдирд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЙрдореНрд░ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 23 рд╕рд╛рд▓ рдХрд╛ рд╣реИ, рдпрд╛ рд╡реЗрдм рдХреЗ 25 рд╡рд░реНрд╖реАрдп рдЙрдореНрд░ рдХреЗ рд╕рд╛рде, рдЙрд╕ рд░реВрдк рдореЗрдВ рдореМрдЬреВрджрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдореЛрдЬрд╝реЗрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдЧрд┐рдирддреА рдХрд░рддреЗ рд╣реИрдВред
9 рд╕рд╛рд▓ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рдЕрд╡рдзрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Node.js рдордВрдЪ рд╣рдореЗрд╢рд╛ рдореМрдЬреВрдж рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ рдордВрдЪ рдХреЗ рд╢реБрд░реБрдЖрддреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ Node.js рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрдм рд╡рд╣ рдХреЗрд╡рд▓ 2 рд╡рд░реНрд╖ рдХреА рдереАред рдлрд┐рд░ рднреА, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ Node.js рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрддрдиреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдереА, рдПрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ Node.js рдмрд╣реБрдд рдЧрдВрднреАрд░ рдереЗред
рдЕрдм рдЪрд▓реЛ рдЙрди рддрдХрдиреАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ Node.js рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддреА рд╣реИрдВ рдФрд░ рдЗрд╕ рдордВрдЪ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрдЦреНрдп рдШрдЯрдирд╛рдУрдВ рдкрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреА рд╣реИрдВред
рддреЛ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕реЗ
рдиреЗрдЯрд╕реНрдХреЗрдк рдиреЗрд╡рд░рд╕реНрдХреЗрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╡реЗрдм рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╕реНрдХреЗрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдиреЗрдЯрд╕реНрдХреЗрдк рдХреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдмреЗрдЪ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдиреЗрдЯрд╕реНрдХреЗрдк рд▓рд╛рдЗрд╡рд╡рд╛рдпрд░ рдирд╛рдордХ рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рдерд╛ред рдЗрд╕рдиреЗ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП JS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ Node.js. рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдЧрднрдЧ рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬреЗрдПрд╕ рдиреЗ рд╕рд╡рд╛рд▓ рдХреЗ рд╕рдордп рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХреАред
рдкреНрд░рдореБрдЦ рдХрд╛рд░рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕рдХреА рд╡рдЬрд╣ рд╕реЗ Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЗрддрдирд╛ рд╡реНрдпрд╛рдкрдХ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрдиреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдордп рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рдЧрдВрднреАрд░ рднрд╛рд╖рд╛ рдорд╛рдирд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред рдпрд╣ Google рдореИрдкреНрд╕ рдпрд╛ рдЬреАрдореЗрд▓ рдЬреИрд╕реЗ рд╡реЗрдм 2.0 рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╣реБрдЖ, рдЬрд┐рд╕рдиреЗ рджреБрдирд┐рдпрд╛ рдХреЛ рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ред
рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпреБрджреНрдз рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬреЛ рдЖрдЬ рднреА рдЬрд╛рд░реА рд╣реИ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред рдореБрдЦреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдкреАрдЫреЗ рд╡рд┐рдХрд╛рд╕ рджрд▓ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рджрд┐рди рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд▓рд╛рднрдХрд╛рд░реА рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдЗрдВрдЬрди рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд V8 рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░реЛрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Node.js. рдпрд╣ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдЬреЗрдПрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рдмреЗрд╢рдХ, Node.js рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рди рдХреЗрд╡рд▓ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рдлрд▓ рд╕рдВрдпреЛрдЬрди рдкрд░ рдФрд░ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдХрд┐ рдпрд╣ рдордВрдЪ рд╕рд╣реА рд╕рдордп рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдЙрд╕рдиреЗ рджреБрдирд┐рдпрд╛ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднрд┐рдирд╡ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдпрд╛ред Node.js. рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
тЦН2009
- Node.js рдХрд╛ рдЖрдЧрдорди
- рдкрд╣рд▓рд╛ npm рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдПрдВред
тЦН2010
тЦН2011
- Npm 1.0 рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВред
- рд▓рд┐рдВрдХреНрдбрдЗрди рдФрд░ рдЙрдмреЗрд░ рдЬреИрд╕реА рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпреЛрдВ рдиреЗ Node.js. рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ
тЦН2012
- Node.js. рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╡реГрджреНрдзрд┐
тЦН2013
- рднреВрдд рдХрд╛ рдЖрдЧрдорди, Node.js. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рдкреНрд░рдореБрдЦ рдкреНрд░рдХрд╛рд╢рди рдордВрдЪ
- рдХреЛрдпрд╛ рд░рд┐рд▓реАрдЬ
тЦН2014
- рдЗрд╕ рд╡рд░реНрд╖ рдирд╛рдЯрдХреАрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реБрдПред IO.js рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд┐рдЦрд╛рдИ рджреА , рдЬреЛ Node.js рдХрд╛ рдПрдХ рдХрд╛рдВрдЯрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде, ES6 рд╕рдорд░реНрдерди рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдордВрдЪ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдирд╛ рдерд╛ред
тЦН2015
- Node.js рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреА рдиреАрдВрд╡ ред
- IO.js рдФрд░ Node.js. рдХрд╛ рд╡рд┐рд▓рдп
- рдПрдирдкреАрдПрдо рдореЗрдВ рдирд┐рдЬреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред
- Node.js 4 рдЖрдЙрдЯрдкреБрдЯ (рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 1, 2 рдФрд░ 3 рдирд╣реАрдВ рд╣реИрдВ)ред
тЦН2016
тЦН2017
- Npm рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реИред
- рдЖрдЙрдЯрдкреБрдЯ Node.js 8
- HTTP / 2 рд╕рдкреЛрд░реНрдЯ рдХрд╛ рдЖрдЧрдордиред
- V8 рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ JS рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рди рдХреЗрд╡рд▓ рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдиреЛрдб рдХреЗ рд▓рд┐рдП рднреА рд╣реИред
- Npm рд╕реЗ 3 рдмрд┐рд▓рд┐рдпрди рдбрд╛рдЙрдирд▓реЛрдб рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
тЦН2018
рдкрд░рд┐рдгрд╛рдо
рдЖрдЬ рдЖрдк Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВ, рдЗрд╕рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рд▓рд┐рдЦрд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдЕрдЧрд▓реА рдмрд╛рд░ рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ Node.js рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рддрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреНрдЮрд╛рди рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб JS рдХреЛрдб рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рдФрд░ Node.js рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХреБрдЫ рдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдореБрдЭреЗ рдмрддрд╛рдУ, рдХреНрдпрд╛ рдЖрдкрдиреЗ Node.js рдХреЗ рд▓рд┐рдП рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рд╢реБрд░реВ рдХрд┐рдпрд╛?
рдореИрдиреБрдЕрд▓ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧ:
рднрд╛рдЧ 1:
рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЖрд░рдВрдн рдХрд░рдирд╛рднрд╛рдЧ 2:
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, V8, рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЧреБрд░рднрд╛рдЧ 3:
рд╣реЛрд╕реНрдЯрд┐рдВрдЧ, рдЖрд░рдИрдкреАрдПрд▓, рдХрдВрд╕реЛрд▓, рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВрднрд╛рдЧ 4:
npm, package.json рдФрд░ package-lock.json рдлрд╛рдЗрд▓реЗрдВрднрд╛рдЧ 5:
npm рдФрд░ npxрднрд╛рдЧ 6:
рдИрд╡реЗрдВрдЯ рд▓реВрдк, рдХреЙрд▓ рд╕реНрдЯреИрдХ, рдЯрд╛рдЗрдорд░рднрд╛рдЧ 7:
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ