рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рддреЗрдЬ nginx рд╡реЗрдм рд╕рд░реНрд╡рд░ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЙрдбрд▓ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдлреБрд░реНрддреАрд▓рд╛ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ Node.js. рдпрд╣ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ? рдпрд╣ рдХреНрд▓рд╛рд╕рд┐рдХ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИ? рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЗрдЦ рд▓рд┐рдЦреЗ рдЧрдП, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреА рдкреВрд░реА рд╕рдордЭ рд╕рднреА рдХреЛ рдирд╣реАрдВ рджреАред рдЕрдХреНрд╕рд░ рдЖрдкрдХреЛ Node.js рдмрдирд╛рдо PHP + рдЕрдкрд╛рдЪреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рд╡рд┐рд╡рд╛рдж рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдЪреАрдЬреЗрдВ Node.js рдкрд░ рдХреНрдпреЛрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди PHP рдкрд░ рдирд╣реАрдВ, рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд - рдХреНрдпреЛрдВ PHP рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб Node.js рдореЗрдВ рдмрд╣реБрдд рдзреАрдорд╛ рдХрд░ рджреЗрдЧрд╛, рдпрд╛ рдЗрд╕реЗ рд▓рдЯрдХрд╛ рднреА рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдЙрдирдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рджреЛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, PHP рдФрд░ Node.js. рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд▓реЗрдВ
рдмрд╣реБрдЖрдпрд╛рдореА рдореЙрдбрд▓
рдпрд╣ рдореЙрдбрд▓ рд╕рднреА рдХреЛ рдкрддрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдереНрд░реЗрдбреНрд╕ (рдкреВрд▓) рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдХрд╛рд░реНрдп рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдп рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд╛рдо рдХреЛ рдХрд╛рдлреА рддреЗрдЬ рдХрд░рддрд╛ рд╣реИред рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдзрд╛рдЧрд╛ рдирд╣реАрдВ рдорд╛рд░рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдереНрд░реЗрдбреНрд╕ рдмрдирд╛рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдУрд╡рд░рд╣реЗрдб рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рд╣реИ рдХрд┐ PHP рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдзрд╛рдЧреЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдПрдХ рдзрд╛рдЧрд╛ рдПрдХ рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдереНрд░реЗрдбреНрд╕ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЕрдиреБрд░реЛрдз рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реНрдЯреНрд░реАрдо рд▓реЗрддреЗ рд╣реИрдВ, рдлрд╛рд╕реНрдЯ рдХреЛ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдб рдХреЛ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рддреЗрдЬ рдЕрдиреБрд░реЛрдз рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХреА рдХреБрдЫ рд╕реАрдорд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рднреА рдзрд╛рдЧреЗ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 1ms рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рдордп рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реЗ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдзреАрдореЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХреЗрдВред рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдереНрд░реЗрдбреНрд╕ рдУрдПрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдЗрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдзрд╛рдЧреЗ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрд░рд┐ рд▓рд╛рдЧрдд рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдХрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдерд┐рддрд┐ рд╕реНрд╡рдпрдВ PHP рджреНрд╡рд╛рд░рд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ - рдбреЗрдЯрд╛рдмреЗрд╕, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо, I / O рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд░реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди, рдЙрд╕ рд╕рдордп рдХреЛрдИ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп рдХрд┐рдП рдмрд┐рдирд╛, CPU рд╕рдордп рднреА рд╡реНрдпрддреАрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдмреНрд▓реЙрдХрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд╕реВрддреНрд░ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ 1ms рд╕реЗ рдорд┐рд▓рдХрд░ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2ms, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ 1msред рдХреБрд▓ рдореЗрдВ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкрд░ 4ms рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреНрд╡реЗрд░реА рднреЗрдЬрддреЗ рд╕рдордп, рдереНрд░реЗрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЬрдм рддрдХ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдПрдЧрд╛, рддрдм рддрдХ рд╕реНрдЯреНрд░реАрдо рдХреЛрдИ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣ 4ms рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░ 2ms рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реИ! рд╣рд╛рдВ, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдмрд┐рдирд╛ рдкреЗрдЬ рдХреЛ рд░реЗрдВрдбрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╣рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рд╣рдореЗрдВ 50% рдкреНрд░реЛрд╕реЗрд╕рд░ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдорд┐рд▓рддрд╛ рд╣реИ! рдФрд░ рдпрд╣рд╛рдВ рдКрдкрд░ рд╕реЗ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдХреЗ рдЖрд╡рдВрдЯрди рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрдПрд╕ рдЦрд░реНрдЪ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдкреНрд░рд╡рд╛рд╣ - рдЙрддрдирд╛ рдЕрдзрд┐рдХ рдЦрд░реНрдЪред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдХрд╛рдлреА рдмрдбрд╝рд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рд╕рдордп рд╕реАрдзреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЕрд╡рдзрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд╕рдВрдХреНрд░рдордг рд╣реИ рдЬреЛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЙрдбрд▓
рдорд▓реНрдЯреА рдереНрд░реЗрдбреЗрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рдореЙрдбрд▓, рд▓реЗрдХрд┐рди рдХрдо рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВред рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЙрдбрд▓ рдПрдХ рдЗрд╡реЗрдВрдЯ рдХрддрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ (рдПрдХ рдЕрдиреБрд░реЛрдз рдЖрдпрд╛, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реА рдЧрдИ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдИ), рдЗрд╕реЗ рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдереНрд░реЗрдб рдХрддрд╛рд░ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдПрдХ рдИрд╡реЗрдВрдЯ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдИрд╡реЗрдВрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдХрддрд╛рд░ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛рдо рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реЛрдЧрд╛ред рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, Node.js. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдХрд▓ рдереНрд░реЗрдб рд╣реИ рдЬреЛ рдИрд╡реЗрдВрдЯ рдХрддрд╛рд░ (рдХреНрд▓рд╕реНрдЯрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде - рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдереНрд░реЗрдб рд╣реЛрдЧрд╛) рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓рдЧрднрдЧ рд╕рднреА рдСрдкрд░реЗрд╢рди рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╣реИрдВред рдмреНрд▓реЙрдХрд░реНрд╕ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрддреНрдпрдзрд┐рдХ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЧреЗ рдЖрдк рд╕рдордЭреЗрдВрдЧреЗ рдХреНрдпреЛрдВред рдЕрдиреБрд░реЛрдз 1 + 2 + 1ms рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ: рдЕрдиреБрд░реЛрдз рдХреЗ рдЖрдЧрдорди рд╕реЗ рдЬреБрдбрд╝реА рдШрдЯрдирд╛ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рд╕реЗ рд▓реА рдЧрдИ рд╣реИред рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, 1ms рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП
рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ рдХреНрд╡реЗрд░реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рддреБрд░рдВрдд рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдХрддрд╛рд░ рд╕реЗ рдЕрдЧрд▓реА рдШрдЯрдирд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо 1 рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВрдЧреЗ, рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рдкрд╕ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдПрдХ рд╣реА рдмрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдФрд░ рдпрд╣рд╛рдБ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдЖрддреА рд╣реИред рдЗрд╕рд╕реЗ рдЬреБрдбрд╝реА рдШрдЯрдирд╛ рдХрддрд╛рд░рдмрджреНрдз рд╣реИред рдпрджрд┐ рдХрддрд╛рд░ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛, рддреЛ рдЗрд╕реЗ рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╡рд╛рдкрд╕ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдХрддрд╛рд░ рдореЗрдВ рдХреБрдЫ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдПрдХрд▓ рдЕрдиреБрд░реЛрдз рдХреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЧрддрд┐ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЕрд╡рд░реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди рдХреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рддреБрд▓рдиреАрдп рд╣реЛрдЧреАред рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп, рдЬрдмрдХрд┐ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рд╡рд╛рд▓реА рдкреНрд░рдгрд╛рд▓реА рд╕рд┐рд░реНрдл 2ms рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧреА, рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди рд╡рд╛рд▓реА рдкреНрд░рдгрд╛рд▓реА 2 рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ 2 рдФрд░ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реА! рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордп рдХреА рдкреНрд░рддрд┐ рдпреВрдирд┐рдЯ рд╣рдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдкреНрд░рджрд░реНрд╢рди рдЕрдзрд┐рдХ рд░рд╣реЗрдЧрд╛ред рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА рдХрд╛рдо рдореЗрдВ рд╡реНрдпрд╕реНрдд рд░рд╣реЗрдЧрд╛ред рдЗрд╕реА рд╕рдордп, рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрддрд╛рд░ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдФрд░ рдИрд╡реЗрдВрдЯ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди рд╡рд╛рд▓реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдереНрд░реЗрдб рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред Node.js рдиреЗ рд╢реБрд░реВ рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреА рдХрдИ рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрдард╛рдирд╛ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд▓реЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЕрдм рдХреНрд▓рд╕реНрдЯрд░ рдореЙрдбреНрдпреВрд▓ рдХрдИ рдХреЛрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ (рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдпрд╣ рдЕрднреА рднреА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реИ)ред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рджреЛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрд╡рд░реЛрдзрдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдбрд╛рдЙрди рд╣реЛрддрд╛ рд╣реИред рдереНрд░реЗрдбреНрд╕ рдХреА рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рдмрдирд╛ рд╕рдХрддреА рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдордВрджреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдмрд╣реБрдд рдзреАрдореЗ рдЕрдиреБрд░реЛрдз рд╣реЛрддреЗ рд╣реИрдВред рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдХрд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ - Node.js рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд░рд┐рд╕рд╛рд╡ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрд╡рд░реБрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдХрдо рд▓рд╛рднрджрд╛рдпрдХ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд▓реЛрдЧ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдЕрдиреБрднрд╡ рдХрд░рддреЗ рд╣реИрдВред
рдмреНрд▓реЙрдХрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдХрднреА рдирд╣реАрдВ
рдареАрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ Node.js рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдФрд░ рдЕрд╡рд░реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм PHP рд╕реЗ Node.js рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рд▓реЛрдЧ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдЙрд╕реА рд╢реИрд▓реА рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓, рдЕрдЧрд░ рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╣рд▓реЗ рдкрдврд╝рдирд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЗрд╕рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд░рдиреА рд╣реИ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
var fs = require('fs');
var data = fs.readFileSync("img.png");
response.write(data);
, . , , Node.js , . . , , . :
var fs = require('fs');
fs.readFile("img.png", function(err, data){
response.write(data);
});
: , , Node.js . тАФ , readFile . , , тАФ . , : , . , . , .
, event-loop:
var fs = require('fs');
var dataModified = false;
var myData;
fs.readFile("file.txt", function(err, data){
dataModified = true;
myData = data+" last read "+new Date();
});
while (true){
if(dataModified)
break;
}
response.write(myData);
, . , , . - тАж !
var fs = require('fs');
var events = require('events');
var myData;
var eventEmitter = new events.EventEmitter();
fs.readFile("file.txt", function(err, data){
myData = data+" last read "+new Date();
eventEmitter.emit('dataModified', myData);
});
eventEmitter.on('dataModified', function(data){
response.write(data);
});
-, . тАФ , , emit , . events.EventEmitter . eventEmitter.on , .
, Node.js. , . , .
.
, ? , ? тАФ . , . , . , , , .
function incredibleGigantCycle(){
cycleProcess();
process.nextTick(incredibleGigantCycle);
}
. .
,
( Node.js тАФ ). (, 500) , . - ? , . , , , . , . , , .
,
, , . Node.js Sync. callback. , , .
var fs = require('fs');
fs.readFile("img.png", function(err, data){
});
response.write(data);
. . тАФ . . . , , callback-. .
, ┬л-┬╗ Node.js, callback', PHP ? .
:
$user->getCountry()->getCurrency()->getCode()
user.getCountry(function(country){
country.getCurrency(function(currency){
console.log(currency.getCode())
})
})
3 . : PHP . , . , . , - , . тАФ , , , . 3 . PHP , Node.js , , .
Node.js , PHP , . Node.js , . тАФ Node.js. , PHP тАФ Node.js , .