Node.js рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ





рдкреЛрд╕реНрдЯ рдореЗрдВ рд▓реЗрдЦ "Node.js рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ" рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдЬреЙрдпрдВрдЯ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд▓реЗрдЦ 28 рдорд╛рд░реНрдЪ 2014 рдХреЛ рдХрдВрдкрдиреА рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдбреЗрд╡ рдкрд╛рдЪреЗрдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рдЕрд╢рд╛рдВрддрд┐ рдХреЛ рдЦрддреНрдо рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдиреЛрдбреНрд╕.рдЬреЗрдПрд╕ рдореЗрдВ рдмрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдЙрдардиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╣реИред



Node.js рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ



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



рд╢реБрд░реБрдЖрддреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рдЕрдХреНрд╕рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рд╣реЛрддреЗ рд╣реИрдВ:







рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕рд╛рдд рднрд╛рдЧ рд╣реИрдВ:



  1. рдкрд░рд┐рдЪрдпред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдардХ рдХреЛ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрд░рд░ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрд░рд░реНрд╕ред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рддред
  3. рд╕рдорд╛рд░реЛрд╣ рд▓реЗрдЦрди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ред рд▓реЗрдЦрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдореМрд▓рд┐рдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдЬреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдХрд╛рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
  4. рд▓реЗрдЦрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдоред рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╕рдордп рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЬрд┐рд╕рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  5. рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред
  6. рд╕рд╛рд░рд╛рдВрд╢ред рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкреНрд░рд╕реНрддреБрддрд┐ред
  7. рдЖрд╡реЗрджрдиред рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдлрд╝реАрд▓реНрдб рдирд╛рдоред




1. рдкрд░рд┐рдЪрдп



рдкрд╛рдардХ рдХреЛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:





рдкрд╛рдардХ рдХреЛ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ try



/ catch



рдирд┐рд░реНрдорд╛рдг рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдирд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред 1

 function myFunc(callback) { /* *     */ try { doSomeAsyncOperation(function (err) { if (err) { throw (err); } }); } catch (ex) { callback(ex); } }
      
      





рдкрд╛рдардХ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ Node.js рдореЗрдВ 3 рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



  1. throw



    рдПрд░рд░ рдлреЗрдВрдХрдирд╛ (рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдирд╛)ред
  2. рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
  3. EventEmitter рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдкрд░ 'error'



    рдШрдЯрдирд╛ рдХреЛ рдЙрдард╛рдирд╛ред


рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХ Node.js. рдореЗрдВ рдбреЛрдореЗрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИ



рдкрд╛рдардХ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдФрд░ рдЕрдкрд╡рд╛рдж рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдПред рддреНрд░реБрдЯрд┐ Error



рд╡рд░реНрдЧ рдХрд╛ рдХреЛрдИ рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред рддреНрд░реБрдЯрд┐ рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рдереНрд░реЛрд╕реНрдЯреИрдореЗрдВрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд▓реМрдЯреА рдпрд╛ рдлреЗрдВрдХ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЬрдм рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ (рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдирд╛): 2



 throw new Error(' ');
      
      





рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬрд╣рд╛рдВ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ:



 callback(new Error(' '));
      
      





рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк Node.js рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХрддрд╛ рдХреЗ рдХрд╛рд░рдгред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдбреЗрдЯрд╛ рдХреЛ JSON.parse



рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JSON.parse



), рдЬрдмрдХрд┐ рдЕрдкрд╡рд╛рдж JSON.parse



рдХрд╛ try



/ catch



рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рд╡рд╛ рдпрд╛ C ++ рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ Node.js рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЕрдкрд╡рд╛рджреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред





2. рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдПрд░рд░ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрд░рд░



рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: 3





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



рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдПрдХ рд╣реА рдХрд╛рд░рдг рд╕реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рддреНрд░реБрдЯрд┐ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐ рджреЛрдиреЛрдВ рд╣реЛред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдПрдХ undefined



рдореВрд▓реНрдп рд╕реЗ рдПрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐ рд╣реИред рдирддреАрдЬрддрди, рд╕рд░реНрд╡рд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ, рдЙрд╕реА рд╕рдордп, ECONNRESET



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



рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрд░рд░ рд╣реИрдВрдбрд▓рд░ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрд░рд░ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо, рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдХ ECONNREFUSED рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрдиреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ 'error'



рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрдиреЗрдХреНрд╢рди рддреНрд░реБрдЯрд┐ рдПрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдиреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ 'рддреНрд░реБрдЯрд┐' рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐ рд╣реИред



рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕рд▓рд┐рдП, рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВред



рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ



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



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



рд╣рдо рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ:





рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ



рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╣реА рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрджрд┐ рдРрд╕реА рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдЧрд▓рдд рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



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



REST рд╕реЗрд╡рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд)ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЕрдиреБрд░реЛрдз рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдореЗрдВ рд╕реЗ RefferenceError



рдЕрдкрд╡рд╛рдж RefferenceError



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





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

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХрдорд╛рддреНрд░, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг, рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд░рдВрдн рдХреЗ рд╕рдордп рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рдЯ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ:





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





3. рд╕рдорд╛рд░реЛрд╣ рд▓реЗрдЦрди рдкреИрдЯрд░реНрди



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





рдлреЗрдВрдХ, рдХреЙрд▓рдмреИрдХ рдпрд╛ EventEmitter?



рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рддреАрди рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ:



  1. рддреБрд▓реНрдпрдХрд╛рд▓рди рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рдЙрд╕реА рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдкрд╡рд╛рдж рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдпрдерд╛, рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдЬрдм рддрдХ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЕрдкрд╡рд╛рдж рдбреЛрдореЗрди рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ рдпрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ 'uncaughtException'



    рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░, рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмрд╛рдж рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛)ред
  2. рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рддрд░реАрдХрд╛ рд╣реИред рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рдлреЙрд░реНрдо callback(err, results)



    рдХреА рдХреЙрд▓ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рдПрдХ рддрд░реНрдХ null



    рд╕реЗ рднрд┐рдиреНрди рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
  3. рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди EventEmitter рд╡рд░реНрдЧ 'error'



    рд╡рд╕реНрддреБ рдХреА рдШрдЯрдирд╛ 'error'



    рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рд╣реИрдВрдбрд▓рд░ рдШрдЯрдирд╛ 'error'



    рд▓рд┐рдП рдкрдВрдЬреАрдХреГрдд рд╣реИред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐:

    • рдПрдХ рдЬрдЯрд┐рд▓ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрдИ рдкрд░рд┐рдгрд╛рдо рдпрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдлрд╝рдВрдХреНрд╢рди EventEmitter рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ "end"



      'row'



      рдЗрд╡реЗрдВрдЯ рдХреЛ рдЙрдард╛рддрд╛ рд╣реИ, рдЬрдм рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ "end"



      рдФрд░ рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ 'error'



      ред
    • рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдЬрдЯрд┐рд▓ рдСрдЯреЛрдореЗрдЯреЛрди рд╣реИ рдЬреЛ рдХрдИ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЙрдХреЗрдЯ, рдЬрд┐рд╕рд╕реЗ рдШрдЯрдирд╛рдУрдВ рд╣реИ 'connect'



      , 'end'



      , 'timeout'



      , 'drain'



      рдФрд░ 'close'



      ред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ 'error'



      ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХрд┐рди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреНрдпрд╛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдиреНрдп рдШрдЯрдирд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рд╡реЗ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред




рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрджрд┐ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрднреА рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рддреЛ, рдлреЗрдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ, рдФрд░ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ? рдпрд╣ рджреЛ рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ:





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



ред рдШрдЯрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдореЗрдВред



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



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



рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдпрдо рд╣реИ: рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рддреЛ рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдпрд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдХрднреА рдирд╣реАрдВ ред рдлрд┐рд░, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рддреНрд░реБрдЯрд┐ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди (рдпрд╛ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди 'error'



), рдпрд╛ рдХреЛрд╢рд┐рд╢ / рдХреИрдЪ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА , рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдХрднреА рдирд╣реАрдВред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рд╣реИред



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



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



рдорд╛рдиреА рдЧрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рд╣реИрдВ:



рдЙрджрд╛рд╣рд░рдг рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХрд╛рд░ рддреНрд░реБрдЯрд┐ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдХреИрд╕реЗ рд▓реМрдЯреЗрдВрдЧреЗ? рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ
fs.stat



рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЙрд▓рдмреИрдХ рд╣реИрдВрдбрд▓рд░ рд╕рдорд╛рд░реЛрд╣
JSON.parse



рдПрдХ рд╕рдордп рдХрд╛ рдЗрдирдкреБрдЯ рддреНрд░реБрдЯрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ throw



try



/ catch



fs.stat



рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рдЧрд╛рдпрдм рд╣реИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐ throw



рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛

(рдХрд╛рд░реНрдп рд╕рдорд╛рдкреНрддрд┐)


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





рдЗрдирдкреБрдЯ рддреНрд░реБрдЯрд┐: рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддреНрд░реБрдЯрд┐ рдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐?



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



рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рддрд░реНрдХреЛрдВ рдХреЛ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рдХрдареЛрд░рддрд╛ рд╣реИред рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬреЛ connect



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





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



рдпрджрд┐ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдореВрд▓реНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,undefined



рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЧрд▓рдд рдкреНрд░рд╛рд░реВрдк рд╣реИ), рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд╛рд░рд┐рдд рдореВрд▓реНрдп рдЧрд▓рдд рд╣реИ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдВрдж рдХрд░ рджреЗрдВред рдЧрд▓рдд рддрд░реНрдХреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЛрдХрдХрд░, рдЖрдк рдЕрдкрдиреЗ рдФрд░ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред





рдбреЛрдореЗрди рдФрд░ process.on ('uncaughtException')



рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдХрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ try



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



'error'



process



'uncaughtException'









4. рд▓реЗрдЦрди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо



рдХрд╛рд░реНрдп рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЗрди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:





  1. . :

    • ;
    • ;
    • , (: IP- ).


    - , .

    :

    • ( ),
    • ( try



      / catch



      ),
    • .


  2. Error ( ) .

    Error , . name



    message



    , stack



    .



  3. , .

    , propertyName propertyValue. remoteIp, . syscall



    , , , errno



    , . .



    :

    • name



      : .
    • message



      : . , , .
    • stack



      : . V8 , , .




    , , message . , .



  4. , .

    , , , callback- , , , . ┬л┬╗. . verror .

    fetchConfig



    , . fetchConfig



    . .



        1.  
          1.1    
            1.1.1     DNS
            1.1.2  TCP     
            1.1.3     
           1.2ред     
           1.3ред   
          1.4.  
        2.   
        


    , 1.1.2 . fetchConfig



    , :



     myserver: Error: connect ECONNREFUSED
          
          





    .

    , :



     myserver: failed to start up: failed to load configuration: failed to connect to database server: failed to connect to 127.0.0.1 port 1234: connect ECONNREFUSED
          
          





    , :



     myserver: failed to load configuration: connection refused from database at 127.0.0.1 port 1234.
          
          





    , , тАФ .



    , :



    • , .
    • name



      , . , , , .
    • message



      рд░реИрдкрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдлрд╝реАрд▓реНрдб рдХреЛ рднреА рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдХреЛрдИ рдХреНрд░рд┐рдпрд╛ рди рдХрд░реЗрдВ stack



      , рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, V8 stack



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


    рдЬреЙрдпрдВрдЯ рдореЗрдВ , рд╣рдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП verror рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдиреНрдпреВрдирддрдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдХреБрдЫ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред







5. рдЙрджрд╛рд╣рд░рдг



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ IPv4 рдкрддреЗ рдкрд░ рдПрдХ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реИред



 /* *   TCP    IPv4 . : * * ip4addr    IPv4; * * tcpPort  , TCP ; * * timeout  ,   ,    *      ; * * callback     , *    ,  *   callback(null, socket),  socket  *   net.Socket,   , *    callback(err). * *       : * * SystemError  "connection refused", "host unreachable"   * ,    connect(2).  *     errno  err   *    . * * TimeoutError       *   timeout. * *       "remoteIp"  "remotePort". *   , ,    ,  . */ function connect(ip4addr, tcpPort, timeout, callback) { assert.equal(typeof (ip4addr), 'string', " 'ip4addr'    "); assert.ok(net.isIPv4(ip4addr), " 'ip4addr'   IPv4 "); assert.equal(typeof (tcpPort), 'number', " 'tcpPort'    "); assert.ok(!isNaN(tcpPort) && tcpPort > 0 && tcpPort < 65536, " 'tcpPort'        1  65535"); assert.equal(typeof (timeout), 'number', " 'timeout'    "); assert.ok(!isNaN(timeout) && timeout > 0, " 'timeout'    "); assert.equal(typeof (callback), 'function'); /*   */ }
      
      





рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХрд╛рдлреА рдЖрджрд┐рдо рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:





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





6. рд╕рд╛рд░рд╛рдВрд╢







7. рдкрд░рд┐рд╢рд┐рд╖реНрдЯ: рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рдлрд╝реАрд▓реНрдб рдирд╛рдо



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

localHostname



DNS- (, , )
localIp



IP- (, , )
localPort



TCP (, , )
remoteHostname



DNS- (, , )
remoteIp



IP- (, , )
remotePort



(, , )
path



, (IPC-) (, , )
srcpath



(, )
dstpath



(, )
hostname



DNS (, , IP-)
ip



IP- (, , DNS-)
propertyName



(, , )
propertyValue



(, , )
syscall



errno



errno



(, "ENOENT"



)





1 рд╢реБрд░реБрдЖрддреА рдЕрдХреНрд╕рд░ рдПрдХ рд╣реА рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, try



/ catch



рдФрд░ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░рдг рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ doSomeAsyncOperation



, рдЗрд╕рд▓рд┐рдП, рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

2 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдпрд╣ throw



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

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

4 рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рд╣реА рдареЛрд╕ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рд▓реНрдкрдирд┐рдХ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдП, рдпрд╣ рдЕрдкреНрд░рд┐рдп рдерд╛ред



All Articles