рдпрд╣рд╛рдБ Node.js. рдореИрдиреНрдпреБрдЕрд▓ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рддреАрд╕рд░рд╛ рднрд╛рдЧ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдЬ рд╣рдо Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, REPL рдореЛрдб рдореЗрдВ 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 рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдХрд░рдХреЗ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ, рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рдирдХреА рдХреНрд╖рдорддрд╛рдПрдВ рд╕реАрдорд┐рдд рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рднреАред
тЦН рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк: рд╕реНрдерд╛рдиреАрдп рд╕реБрд░рдВрдЧ
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЖрдИрдкреА рдкрддрд╛ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЖрдк NAT рдХреЗ рдкреАрдЫреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдкрд░ рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдп рд╕реБрд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЙрддреНрдкрд╛рдж рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯреЗ рд╕рдореВрд╣ рдХреЛ рдЖрд╡реЗрджрди рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред
рдХрдИ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕реНрдерд╛рдиреАрдп рд╕реБрд░рдВрдЧреЛрдВ,
рдПрдирдЧреНрд░реЛрдХ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рд╣реИред
Ngrok рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдпрд╣ рдкреНрд░рдкрддреНрд░
ngrok PORT
рдХреА рдПрдХ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕реБрд▓рдн рд╣реЛрдЧрд╛ред рдЙрд╕реА рд╕рдордп, рдпрджрд┐ рдЖрдк рд╕реЗрд╡рд╛ рдХреЗ рдореБрдлреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕
ngrok.io
рдбреЛрдореЗрди рдореЗрдВ рдПрдХ рдкрддрд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд╢реБрд▓реНрдХ рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЛрдореЗрди рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╕рдорд╛рдзрд╛рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ (ngrok рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдкреВрд░реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдПрдХ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдерд╛рдиреАрдп рд╕реБрд░рдВрдЧреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕реЗ
рд╕реНрдерд╛рдиреАрдпрдЯреБрдиреЗрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
ред Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рдЬрд┐рд╕рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдЧрдбрд╝рдмрдбрд╝
рдЧреНрд▓рд┐рдЪ рдПрдХ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдФрд░ рддреАрд╡реНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ рдЬреЛ рдЖрдкрдХреЛ glitch.com рд╕рдмрдбреЛрдореЗрди рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрднреА рддрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЛрдореЗрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ
рд╕реАрдорд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдЧреНрд▓рд┐рдЪ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдмрд╣реБрдд рдордЬрд╝реЗрджрд╛рд░ рд▓рдЧрддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдЗрд╕реЗ рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдлрд╛рдпрджреЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ "рдЦрд┐рд▓реМрдирд╛" рд╡рд╛рддрд╛рд╡рд░рдг рдирд╣реАрдВ рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИред рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ Node.js, CDN, рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рднрдВрдбрд╛рд░, GitHub рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред
рдЧреНрд▓рд┐рдЪ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдлреЛрдЧрдмреБрдЧ рдФрд░ рдЯреНрд░реЗрд▓реЛ (рд╕реНрдЯреИрдХрдСрдирдлреНрд▓реЛ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ) рдХреЗ рдкреАрдЫреЗ рдПрдХ рд╣реА рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЕрдХреНрд╕рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдордВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
Codepen
рдХреЛрдбрдкреЗрди рдПрдХ рдмреЗрд╣рддрд░реАрди рдордВрдЪ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдореБрджрд╛рдп рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЛрдореЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдирд╛рдд рдХрд░реЗрдВред
тЦН рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг
рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЙрдирдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░рд▓реЗрд╕ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рдкреНрд░рддрд┐рдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ рдХреЙрд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ FAAS (рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп, рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп) рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреБрдЫ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдорд╛рдзрд╛рди рджрд┐рдП рдЧрдП рд╣реИрдВ:
рдпреЗ рджреЛрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ рдХреА рдЕрдореВрд░реНрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди FAAS рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдореЗрдЬрд╝рди AWS рд▓реИрдореНрдмреНрдбрд╛, Microsoft Azure рдФрд░ Google рдХреНрд▓рд╛рдЙрдбред
тЦНPAAS рд╕рдорд╛рдзрд╛рди
PAAS (рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо) рдРрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИрдВ рдЬреЛ рдХрдИ рдЪреАрдЬреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдЖрд╡реЗрджрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреАрдпрдд рдЕрдм
рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
Zeit рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЗрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддреИрдирд╛рддреА рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ
now
рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдмрд▓рддреА рд╣реИред рдЬрд╝рд┐рдЯ рдХрд╛ рдПрдХ рдореБрдХреНрдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВред рдЗрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдкреЗрдб, рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИред Zeit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдмрд╕ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдмрд╕ рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЗрд╕ рдордВрдЪ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Nanobox
рдиреИрдиреЛрдмреЙрдХреНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛, рдЬрд┐рд╕рдореЗрдВ Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреИрдирд╛рддреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕реЗ PAAS V2 рдХрд╣рддреЗ рд╣реИрдВред
Heroku
Heroku Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдмрдврд╝рд┐рдпрд╛ рдордВрдЪ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред
Microsoft azure
Azure Microsoft рд╕реЗ рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред рдЗрд╕рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдПрдХ
рдЕрдиреБрднрд╛рдЧ рд╣реИ ред
Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо
Google рдХреНрд▓рд╛рдЙрдб Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИред
рдпрд╣рд╛рдБ рдЗрд╕рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЦрдВрдб рд╣реИред
HostingVPS рд╣реЛрд╕реНрдЯрд┐рдВрдЧ
рдРрд╕реЗ рдХрдИ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИрдВ рдЬреЛ
VPS рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреЗ
рд╣реИрдВ ред рдРрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдПрдХ рдЖрднрд╛рд╕реА рд╕рд░реНрд╡рд░ рд╣реИ, рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрд╕ рдкрд░ рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рд▓рд┐рдирдХреНрд╕ рдпрд╛ рд╡рд┐рдВрдбреЛрдЬ) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИред
рд╡реАрдкреАрдПрд╕ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреЛрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛ рд╕рдХрддрд╛ рдерд╛:
рдЕрдкрдиреЗ рджрдо рдкрд░, рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ RUVDS VPS рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛рдПрдБ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдПрдлрдПрд╕рдЯреАрдИрд╕реА рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИ, рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХрд╛ рдПрдЖрдИрдЬреА рджреНрд╡рд╛рд░рд╛ рдмреАрдорд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рджреЗрд╢реЛрдВ рдореЗрдВ рдЪрд╛рд░ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░ рд╣реИрдВред рдореЙрд╕реНрдХреЛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдХреЛрд░реЛрд▓реЗрд╡ рд╢рд╣рд░ рдореЗрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдЖрд░рдпреВрд╕реАрдПрд▓рдУрдпреВрдбреА рд╕реНрддрд░ рдЯреАрдЖрдИрдЖрд░ 3 рд╣реИ, рд╕рд╛рде рд╣реА рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдбреЗрд▓реНрдЯрд╛рд▓рд┐рд╕ (рд╕реНрд╡рд┐рдЯрдЬрд░рд▓реИрдВрдб) , рд▓рдВрджрди рдЗрдХреНрд╡рд┐рдирд┐рдХреНрд╕ рдПрд▓рдбреА 8 (рдЧреНрд░реЗрдЯ рдмреНрд░рд┐рдЯреЗрди) , рдФрд░ рдПрдордПрдордЯреАрдПрд╕ -9 (рдореЙрд╕реНрдХреЛ, рд░реВрд╕) рдореЗрдВ рджрдмрд╛рд╡ рдХреНрд╖реЗрддреНрд░ рднреА рд╣реИрдВред рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг рдХреНрд╖реЗрддреНрд░ рдХрдо рд╕реЗ рдХрдо TIER 3 рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реНрддрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдХрдВрдкрдиреА рдХреЗ рд╕рд╛рдЭреЗрджрд╛рд░ рд╣реИрдВ рдлрд┐рдирдо рдЬреЗрдПрд╕рд╕реА, рдмреАрд╕реАрдПрд╕ рд╡рд┐рддреНрддреАрдп рд╕рдореВрд╣, рдиреЗрд╢рдирд▓ рд╕реЗрдЯрд▓рдореЗрдВрдЯ рдбрд┐рдкреЙрдЬрд┐рдЯрд░реА (рдореЙрд╕реНрдХреЛ рдПрдХреНрд╕рдЪреЗрдВрдЬ), рд╡реАрдЯреАрдПрд╕рдЖрдИрдУрдПрдо рдЬреЗрдПрд╕рд╕реА, рдЧрд╛рд░реНрд╕-рдЯреЗрд▓реАрдХреЙрдо рдХрдВрдкрдиреА, рдЧреЗрдЯреНрдЯ рдЯреИрдХреНрд╕реА рдСрдкрд░реЗрдЯрд░, рдбрд┐рд▓рд┐рд╡рд░реА рдХреНрд▓рдм рдбрд┐рд▓реАрд╡рд░реА рдСрдкрд░реЗрдЯрд░ рдФрд░ рдХрдИ рдЕрдиреНрдпред
тЦНрдиреЙрд░реНрдорд▓ рд╕рд░реНрд╡рд░
рдПрдХ рдЕрдиреНрдп рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдЦрд░реАрджрдирд╛ рд╣реИ (рдпрд╛ рдХрд┐рд░рд╛рдП рдкрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд╡рд▓реНрдерд░ рди рдмрд░ рдзрд╛рддреБ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░реНрд╡рд░, рдЙрд╕ рдкрд░ рд▓рд┐рдирдХреНрд╕ рдФрд░ рдЕрдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдЗрд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдкрд░ Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░реЗрдВред
рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╡рд┐рд╖рдп рд╣реИ, рд▓реЗрдХрд┐рди, рдЙрдореНрдореАрдж рд╣реИ, рдЗрд╕ рдЦрдВрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдЖрдкрдХреЛ рд╡рд╣реА рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред рдЕрдм рд╣рдо REPL рдореЛрдб рдореЗрдВ Node.js рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдиреА рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред
REPL рдореЛрдб рдореЗрдВ Node.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо REPL, рд░реАрдб-рдЗрд╡реИрд▓реНрдпреВрдПрд╢рди-рдкреНрд░рд┐рдВрдЯ-рд▓реВрдк (рдЪрдХреНрд░ "рд░реАрдб - рдХреИрд▓рдХреБрд▓реЗрдЯ - рдЖрдЙрдЯрдкреБрдЯ") рдХреЗ рд▓рд┐рдП рд╣реИред REPL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Node.js. рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╢реАрдШреНрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ,
node
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ Node.js рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
node script.js
рдпрджрд┐ рдЖрдк рд╕рдорд╛рди рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Node.js рдХреЛ REPL рдореЛрдб рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
node
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдорд╛рдВрдб рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрдкрдХреЛ рдирд┐рдореНрди рдЬреИрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
> node >
Node.js рдЕрдм рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ рд╣реИред рд╕рд┐рд╕реНрдЯрдо рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХреБрдЫ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рд╡рд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓реЛ рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
> console.log('test') test undefined >
рдпрд╣рд╛рдВ рд╣рдордиреЗ Node.js рдХреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ред рдкрд╣рд▓рд╛ рдорд╛рди,
test
, рдЬреЛ
console.log('test')
ред рджреВрд╕рд░рд╛ рдорд╛рди,
undefined
, рд╡рд╣ рд╣реИ рдЬреЛ
console.log()
рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХрдорд╛рдВрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, REPL рдкреНрд░реЙрдореНрдкреНрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рдПрдХ рдирдИ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЯреИрдм рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ pleteComplete рдХрдорд╛рдВрдб
REPL рдПрдХ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИред рдпрджрд┐ рдЖрдк рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдЕрдкрдиреЗ рдХреАрдмреЛрд░реНрдб рдкрд░
Tab
рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрд░рдИрдкреАрдПрд▓ рдЪрдпрди рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╣реА рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдирд╛рдо рдпрд╛ рдорд╛рдирдХ рд╡рд╕реНрддреБ рдХрд╛ рдирд╛рдоред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ JavaScriptExploring
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдХреБрдЫ рдорд╛рдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Number
, рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдбреЙрдЯ рдЬреЛрдбрд╝реЗрдВ рдФрд░
Tab
рджрдмрд╛рдПрдВред
REPL рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕рдВрдЦреНрдпрд╛ рд╡рд╕реНрддреБ рдХреА рдЬрд╛рдВрдЪред рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдХрд┐рд╕ рд╡реИрд╢реНрд╡рд┐рдХ Node.js рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ
global.
рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ
global.
рдФрд░
Tab
рджрдмрд╛рдПрдБред
рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рдЕрдиреБрд╕рдВрдзрд╛рдитЦН рд╡рд┐рд╢реЗрд╖ рдЪрд░ _
рдЪрд░
_
(рдЕрдВрдбрд░рд╕реНрдХреЛрд░) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЧрдП рдЕрдВрддрд┐рдо рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд░реНрдЬ рдЖрджреЗрд╢реЛрдВ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
With рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрдорд╛рдВрдб
REPL рдореЛрдб рдореЗрдВ, рдЖрдк рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ:
.help
рдХрдорд╛рдВрдб рдПрдХ рдЕрд╡рдзрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред.editor
рдХрдорд╛рдВрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдПрдбрд┐рдЯрд░ рдореЛрдб рдореЗрдВ .editor
рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рджрд░реНрдЬ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдореЛрдб рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕рдм рдХреБрдЫ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Ctrl+D
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ Ctrl+D
.break
рдХрдорд╛рдВрдб .break
рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдЗрдирдкреБрдЯ рдХреЛ рдирд┐рд░рд╕реНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ Ctrl+C
рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рдорд╛рди рд╣реИ Ctrl+C
.clear
рдЖрджреЗрд╢ REPL рд╕рдВрджрд░реНрдн рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рднреА рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред- рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░ рдореЗрдВ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ
.load
рдХрдорд╛рдВрдб рд▓реЛрдб рдХреЛрдбред .save
рдХрдорд╛рдВрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ REPL рд╕рддреНрд░ рдХреЗ рджреМрд░рд╛рди рджрд░реНрдЬ рдХреА рдЧрдИ рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрддреА рд╣реИред.exit
рдХрдорд╛рдВрдб .exit
REPL рд╕рддреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; рдпрд╣ Ctrl+C
рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрди рдХреЗ рджреЛ рд▓рдЧрд╛рддрд╛рд░ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрд░рдИрдкреАрдПрд▓ рдиреЗ
.editor
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рднреА рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рдкрд╣рдЪрд╛рди рд▓рд┐рдпрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛрдб рджрд░реНрдЬ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛:
[1, 2, 3].forEach(num => {
рдпрджрд┐, рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж,
Enter
рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ, REPL рдПрдХ рдирдИ рд▓рд╛рдЗрди рдкрд░ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЙрдореНрдкреНрдЯ рддреАрди рдбреЙрдЯреНрд╕ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рдВрдмрдВрдзрд┐рдд рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдб рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
... console.log(num) ... })
рдЕрдВрддрд┐рдо рдХреЛрд╖реНрдардХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
Enter
рджрдмрд╛рдХрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕ рдореЛрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдирдкреБрдЯ рдирд┐рд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреАред
REPL рдореЛрдб Node.js рдХреА рдПрдХ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рджрд╛рдпрд░рд╛ рдЫреЛрдЯреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рд╣рдо рдХреБрдЫ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ Node.js рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ Node.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
Node.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛
Node.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп, рдЙрдирд╕реЗ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓ рд╣реИ:
node app.js
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджрд┐рдП рдЧрдП рддрд░реНрдХ рдпрд╛ рддреЛ рд╕реНрд╡рддрдВрддреНрд░ рдореВрд▓реНрдп рдпрд╛ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдирд┐рд░реНрдорд╛рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
node app.js flavio
рджреВрд╕рд░реЗ рдореЗрдВ - рдЗрд╕ рддрд░рд╣:
node app.js name=flavio
рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ Node.js
process
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдкрд╛рд╕
argv
рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рдЬреЛ рдХрд┐ рдПрдХ рд╕рд░рдгреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рджрд┐рдП рдЧрдП рд╣реИрдВред
argv
array рдХреЗ рдкрд╣рд▓реЗ рдПрд▓рд┐рдореЗрдВрдЯ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░
node
рдХрдорд╛рдВрдб рдПрдВрдЯрд░ рдХрд░рдиреЗ рдкрд░ рдлрд╛рдЗрд▓ рдХрд╛ рдкреВрд░рд╛ рд░рд╛рд╕реНрддрд╛ рд╣реЛрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рддрддреНрд╡ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХрд╛ рдорд╛рд░реНрдЧ рд╣реИред
рд╕рд░рдгреА рдХреЗ рдЕрдиреНрдп рд╕рднреА рддрддреНрд╡, рддреАрд╕рд░реЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдЗрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Argv рдореЗрдВ рдЙрдкрд▓рдмреНрдз рддрд░реНрдХреЛрдВ рдХреА рдЧрдгрдирд╛ (рдЗрд╕рдореЗрдВ
node
рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрде рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ
forEach
рд▓реВрдк рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
process.argv.forEach((val, index) => { console.log(`${index}: ${val}`) })
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рджреЛ рддрд░реНрдХреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ
argv
рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рдПрдХ рдирдпрд╛ рд╕рд░рдгреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рджреЛ рддрддреНрд╡реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░
argv
рд╕реЗ рд╕рдм рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛:
const args = process.argv.slice(2)
рдорд╛рди рд▓реАрдЬрд┐рдП, рдХреЛрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп, рдХреЗрд╡рд▓ рдПрдХ рддрд░реНрдХ рдХреЛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
node app.js flavio
рдЖрдк рдЗрд╕ рддрд░реНрдХ рдХреЛ рдЗрд╕ рддрд░рд╣ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
const args = process.argv.slice(2) args[0]
рдЕрдм рдЖрдЗрдП рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
node app.js name=flavio
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде,
args
рд╕рд░рдгреА рдмрдирдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдЯреНрд░рд┐рдВрдЧ
name=flavio
args[0]
ред рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛
рдиреНрдпреВрдирддрдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
const args = require('minimist')(process.argv.slice(2)) args['name']
рдЕрдм рдХрдВрд╕реЛрд▓ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдХрдВрд╕реЛрд▓ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрд╕реЛрд▓ рдХреЛ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛
рдорд╛рдирдХ Node.js
рдХрдВрд╕реЛрд▓ рдореЙрдбреНрдпреВрд▓ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА
console
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИред
console
рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рддрд░реАрдХрд╛
console
рд╣реИред
console.log()
, рдЬреЛ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣, рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред
console.log()
рд╡рд┐рдзрд┐ рдХреЛ рдХрдИ рдорд╛рдиреЛрдВ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
const x = 'x' const y = 'y' console.log(x, y)
рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЗрд╕ рдХреНрд░рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж,
x
рдорд╛рди рдФрд░
y
рдорд╛рди рджреЛрдиреЛрдВ рдХрдВрд╕реЛрд▓ рдХреЛ рдорд┐рд▓реЗрдВрдЧреЗред
рдЬрдЯрд┐рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП,
console.log()
рдХрдорд╛рдВрдб рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдПрдХ рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдкрд╛рда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
My cat has 2 years
:
console.log('My %s has %d years', 'cat', 2)
рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
%s
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИред%d
рдпрд╛ %i
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИред%f
рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реИрд▓реНрдпреВ рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░рддрд╛ рд╣реИред%O
рдЙрдкрдпреЛрдЧ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рд░реВрдкрдг рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
console.log('%O', Number)
рд╕рд╛рдВрддреНрд╡рдирд╛ рджреЗрдирд╛
рдХрдВрд╕реЛрд▓ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдВрд╕реЛрд▓ред рдХреНрд▓рд┐рдпрд░
console.clear()
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
console.clear()
рд╡рд┐рднрд┐рдиреНрди рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
тЦНрдХрд╛рдЙрдЯрд┐рдВрдЧ рддрддреНрд╡
рдЕрдм рд╣рдо рдЙрдкрдпреЛрдЧреА
console.count()
рдкрд░ рджреЗрдЦреЗрдВрдЧреЗред
console.count()
рд╡рд┐рдзрд┐ред рдЗрд╕ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
const x = 1 const y = 2 const z = 3 console.count( 'The value of x is ' + x + ' and has been checked .. how many times?' ) console.count( 'The value of x is ' + x + ' and has been checked .. how many times?' ) console.count( 'The value of y is ' + y + ' and has been checked .. how many times?' )
count()
рд╡рд┐рдзрд┐ рдкрдВрдХреНрддрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЧрд┐рдирд╛рддреА рд╣реИ рдФрд░ рдЙрдирдХреЗ рдмрдЧрд▓ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдк рд╕реЗрдм рдФрд░ рд╕рдВрддрд░реЗ рдЧрд┐рди рд╕рдХрддреЗ рд╣реИрдВ:
const oranges = ['orange', 'orange'] const apples = ['just one apple'] oranges.forEach(fruit => { console.count(fruit) }) apples.forEach(fruit => { console.count(fruit) })
.Displaying рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП
рдХрднреА-рдХрднреА рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреИрдХ рдХреЗ рдЯреНрд░реЗрд╕ рдХреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд╛рди рдХреИрд╕реЗ рдорд┐рд▓рд╛ред рдЖрдк рдирд┐рдореНрди рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
console.trace()
рдпрд╣рд╛рдБ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
const function2 = () => console.trace() const function1 = () => function2() function1()
рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдб рдХреЛ REPL рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рддреЛ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ:
Trace at function2 (repl:1:33) at function1 (repl:1:25) at repl:1:1 at ContextifyScript.Script.runInThisContext (vm.js:44:33) at REPLServer.defaultEval (repl.js:239:29) at bound (domain.js:301:14) at REPLServer.runBound [as eval] (domain.js:314:12) at REPLServer.onLine (repl.js:440:10) at emitOne (events.js:120:20) at REPLServer.emit (events.js:210:7)
тЦН рдХрд┐рд╕реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп рдХрдо рдХрд░рдирд╛
рдЖрдк рдЙрд╕ рд╕рдордп рдХреЛ рдорд╛рдк рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
console.time()
рдФрд░
console.timeEnd()
рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
const doSomething = () => console.log('test') const measureDoingSomething = () => { console.time('doSomething()') // , doSomething() console.timeEnd('doSomething()') } measureDoingSomething()
рд╕реНрдЯрдбрдЖрдЙрдЯ рдФрд░ рд╕реНрдЯрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ, рдХрдВрд╕реЛрд▓ рдХреЛ рд╕рдВрджреЗрд╢ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
console.log()
рдХрдорд╛рдВрдб рдмрдврд╝рд┐рдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рддрдерд╛рдХрдерд┐рдд рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо, рдпрд╛
stdout
ред
console.error()
рдХрдорд╛рдВрдб рдорд╛рдирдХ рддреНрд░реБрдЯрд┐ рд╕реНрдЯреНрд░реАрдо,
stderr
рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рдбрдВрдк рдХрд░рддрд╛ рд╣реИред
stderr
рдХреЛ рднреЗрдЬрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдХрдВрд╕реЛрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрдВрд╕реЛрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╕рдордп toUse рд░рдВрдЧ
рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЧреНрд░рдВрдереЛрдВ рдХреЛ рд░рдВрдЧ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд░рдВрдЧреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрд╕реНрдХреЗрдк рдЕрдиреБрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
console.log('\x1b[33m%s\x1b[0m', 'hi!')
рдпрджрд┐ рдЖрдк рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд░рдИрдкреАрдПрд▓ рдореЛрдб рдореЗрдВ, рдкрд╛рда
hi
рдХреЛ рдкреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред
рдХрдВрд╕реЛрд▓ рдореЗрдВ рд░рдВрдЧреАрди рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░рдВрдЧ рдкреНрд░рд╛рд░реВрдкрдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдиреНрд╣реЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдкрд╛рда рдХреЛ рдмреЛрд▓реНрдб, рдЗрдЯреИрд▓рд┐рдХ рдпрд╛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЗрд╕реЗ npm рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
npm install chalk
рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
const chalk = require('chalk') console.log(chalk.yellow('hi!'))
рдмрдЪ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ
chalk.yellow()
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдЪрд╛рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рдкреЗрдЬ рдХреЛ GitHub рдкрд░ рджреЗрдЦреЗрдВред
тЦН рдПрдХ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдмрдирд╛рдПрдБ
рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдкреНрд░рдЧрддрд┐ рд╕рдВрдХреЗрддрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк
рдкреНрд░рдЧрддрд┐ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
npm install progress
рдиреАрдЪреЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрддрдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 10 рдЪрд░рдгреЛрдВ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ 100 рдПрдордПрд╕ рд▓рдЧрддреЗ рд╣реИрдВред рд╕реВрдЪрдХ рдХреЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж,
clearItnerval()
рдХрдорд╛рдВрдб
clearItnerval()
рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
const ProgressBar = require('progress') const bar = new ProgressBar(':bar', { total: 10 }) const timer = setInterval(() => { bar.tick() if (bar.complete) { clearInterval(timer) } }, 100)
тЦН рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди
Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреИрд╕реЗ рдмрдирд╛рдПрдВ? рд╕рдВрд╕реНрдХрд░рдг 7 рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, Node.js рдореЗрдВ рдПрдХ
рд░реАрдбрд▓рд╛рдЗрди рдореЙрдбреНрдпреВрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЙрди рдзрд╛рд░рд╛рдУрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
process.stdin
ред рдпрд╣ рдзрд╛рдЧрд╛, Node.js рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбреЗрдЯрд╛ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout }) readline.question(`What's your name?`, (name) => { console.log(`Hi ${name}!`) readline.close() })
рдпрд╣рд╛рдВ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЙрд╕рдХрд╛ рдирд╛рдо рдкреВрдЫрддреЗ рд╣реИрдВ, рдФрд░ рдкрд╛рда
Enter
рдХрд░рдиреЗ рдФрд░ рдХреАрдмреЛрд░реНрдб рдкрд░
Enter
рдХреБрдВрдЬреА рджрдмрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рдЧреНрд░реАрдЯрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
question()
рд╡рд┐рдзрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреВрдЫрд╛ рдЧрдпрд╛ рдкреНрд░рд╢реНрди) рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред
Enter
рджрдмрд╛рдиреЗ рдХреЗ рдмрд╛рдж
Enter
рдпрд╣ рдХреЙрд▓рдмреИрдХ рдХреЛ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреЛ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЙрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рдХреЙрд▓рдмреИрдХ рдореЗрдВ, рд╣рдо
readline
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВред
readline
, , .
, , , , , , тАФ
*
.
,
readline-sync , ,
readline
, .
, .
inquirer . :
npm install inquirer
:
const inquirer = require('inquirer') var questions = [{ type: 'input', name: 'name', message: "What's your name?", }] inquirer.prompt(questions).then(answers => { console.log(`Hi ${answers['name']}!`) })
inquirer . , .
Node.js.
readline
, readline-sync inquirer. , , .
Node.js, exports
, API
module.exports
, . Node.js ,
. ,
require
, :
const library = require('./library')
library.js
, , , .
, , - , . , , . , API
module.exports
, .
.
module.exports
, , . :
const car = { brand: 'Ford', model: 'Fiesta' } module.exports = car
,
exports
. , , тАФ :
const car = { brand: 'Ford', model: 'Fiesta' } exports.car = car
:
exports.car = { brand: 'Ford', model: 'Fiesta' }
, , :
const items = require('./items') items.car
:
const car = require('./items').car
module.exports
exports
?
,
module.exports
. .
Node.js-, REPL, , Node.js. npm, , ,
package.json
package-lock.json
.
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! Node.js-?
