Request: рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдЕрдкреНрд░реИрд▓ 2019  ┬╖  86рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: request/request

"рд░рдЦрд░рдЦрд╛рд╡ рдореЛрдб" рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд╛рдж рд╕реЗ (#3142 рдореЗрдВ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг) рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдПрдХрддреНрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдФрд░ рдореИрдВ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджреВрдВрдЧрд╛ред рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдЪреНрдЫреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕реВрдЪреА рд╣реЛ рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рд░реАрдбрдореА рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреНрд░рдо рдореЗрдВ рдФрд░ рднрдпрд╛рдирдХ рд░реВрдк рд╕реЗ рдЕрдкреВрд░реНрдг;

рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо | рдмрдВрдбрд▓ рдЖрдХрд╛рд░ | рдПрдкреАрдЖрдИ рд╕реНрдЯрд╛рдЗрд▓ | рд╕рд╛рд░рд╛рдВрд╢
------------ | ------------- | ------------- | -------------
рдиреЛрдб-рдлрд╝реЗрдЪ | 0.4kb | рд╡рд╛рджрд╛ / рдзрд╛рд░рд╛ | рдПрдХ рд╣рд▓реНрдХрд╛-рдлреБрд▓реНрдХрд╛ рдореЙрдбреНрдпреВрд▓ рдЬреЛ window.fetch рдХреЛ Node.js рдкрд░ рд▓рд╛рддрд╛ рд╣реИ
рддреБрд▓рд╛ | 1kb | fp / рд╡рд╛рджрд╛ / рдзрд╛рд░рд╛ | рдХрд╛рд░реНрдпрд╛рддреНрдордХ HTTP рдХреНрд▓рд╛рдЗрдВрдЯ w/async/рдкреНрд░рддреАрдХреНрд╖рд╛
рдорд┐рд▓ рдЧрдпрд╛ | 48.4kb | рд╡рд╛рджрд╛ / рдзрд╛рд░рд╛ | рд╕рд░рд▓реАрдХреГрдд HTTP рдЕрдиреБрд░реЛрдз
рдмрдирд╛рдирд╛-рд▓рд╛рдирд╛-рд╣реЛрдирд╛ | 442kb | рд╡рд╛рджрд╛ / рдзрд╛рд░рд╛ | рдореЗрдХ-рдлрд╝реЗрдЪ-рд╣реИрдкрди рдПрдХ Node.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдиреЛрдб-рдлрд╝реЗрдЪ-рдПрдирдкреАрдПрдо рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯрддрд╛ рд╣реИ, рдиреЛрдб-рдлрд╝реЗрдЪ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ HTTP рдХреИрд╢ рд╕рдкреЛрд░реНрдЯ, рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдкреВрд▓рд┐рдВрдЧ, рдкреНрд░реЙрдХреНрд╕реА, рд░рд┐рдЯреНрд░реАрдЬрд╝, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИ!
рдЕрдХреНрд╖ | 11.9kb | рд╡рд╛рджрд╛ / рдзрд╛рд░рд╛ | рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ node.js рдХреЗ рд▓рд┐рдП рд╡рд╛рджрд╛ рдЖрдзрд╛рд░рд┐рдд HTTP рдХреНрд▓рд╛рдЗрдВрдЯ
рдЕрдирдлрд╝реЗрдЪ | 1kb | рд╡рд╛рджрд╛ / рдзрд╛рд░рд╛ | рдЯрд┐рдиреА 500b рдлрд╝реЗрдЪ "рдмрдореБрд╢реНрдХрд┐рд▓-рдкреЙрд▓реАрдлрд╝рд┐рд▓"
рд╕реБрдкрд░рдПрдЬреЗрдВрдЯ | 18kb | рдЬрдВрдЬреАрд░ / рд╡рд╛рджрд╛ | рдЫреЛрдЯреЗ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб HTTP рдЕрдиреБрд░реЛрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдФрд░ рдПрдХ рд╣реА рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде Node.js рдореЙрдбреНрдпреВрд▓, рдХрдИ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕реНрдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реБрдП
рдЯрд┐рдиреА-рдЬреЗрд╕рди-http | 22kb | рд╡рд╛рджрд╛ | JSON рдкреЗрд▓реЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо HTTP рдХреНрд▓рд╛рдЗрдВрдЯ
рд╕реБрдИ | 164kb | рдЬрдВрдЬреАрд░ / рд╡рд╛рджрд╛ | рдиреЛрдбрд▓реИрдВрдбреНрд╕ рдореЗрдВ рд╕рдмрд╕реЗ рджреБрдмрд▓рд╛ рдФрд░ рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ HTTP рдХреНрд▓рд╛рдЗрдВрдЯ
urllib | 816kb | рдХреЙрд▓рдмреИрдХ / рд╡рд╛рджрд╛ | рдПрдХ рдЬрдЯрд┐рд▓ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдпреВрдЖрд░рдПрд▓ (рдЬреНрдпрд╛рджрд╛рддрд░ рдПрдЪрдЯреАрдЯреАрдкреА) рдЦреЛрд▓рдиреЗ рдореЗрдВ рдорджрдж - рдмреБрдирд┐рдпрд╛рджреА рдФрд░ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди, рдХреБрдХреАрдЬрд╝ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

  • рдЧрд┐рдердм рдореЗрдВ рд╕рд┐рддрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рд╣рд╛рдБ, рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рдПрдХ рдХрд╛рдо рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
  • рдПрдирдкреАрдПрдо рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ (рд╢рд╛рдпрдж рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ, рдПрдирдкреАрдПрдо рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╕рдорд╛рди рд╕реНрдЯреЗрдЯ, рдФрд░ рд╣рд╛рдВ, рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рдПрдХ рд▓рд┐рдм рдЪреБрдирддреЗ рд╣реИрдВ)

рдЗрди рдирдВрдмрд░реЛрдВ рдХреЛ рд╕рд╛рде-рд╕рд╛рде рд░рдЦрдиреЗ рдкрд░ рдХреБрдЫ рдХрд╛рдореЛрдВ рдореЗрдВ рд╣рдЬрд╛рд░реЛрдВ рд╕рд┐рддрд╛рд░реЗ рдФрд░ рд▓рд╛рдЦреЛрдВ рдбрд╛рдЙрдирд▓реЛрдб рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рд╕реИрдХрдбрд╝реЛрдВ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдореЗрд░реЗ 2 рд╕реЗрдВрдЯ, рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ, рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдпрд╛ рд╡рд┐рд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рднреА 86 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрдХ рдлреНрд░рдВрдЯрдПрдВрдб рдХреЗрдВрджреНрд░рд┐рдд рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рдЬреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдиреЛрдб.рдЬреЗрдПрд╕ рднреА рдХрд░рддрд╛ рд╣реИ, рдПрдХреНрд╕рд┐рдпреЛрд╕ рдореЗрд░рд╛ рдЬрд╛рдирд╛ рд░рд╣рд╛ рд╣реИред
рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЖрд╕рд╛рди рдПрдкреАрдЖрдИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдиреЛрдб рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдкреВрд░реНрдг

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

@reconbot рдЖрдк рдорд┐рд▓рд╛ , рд╕реБрдИ рдФрд░ urllib рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

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

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рднреА рд▓рд┐рдЦрд╛ рдерд╛ред рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ HTTP рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреА рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдкред

рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХрднреА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

  • рдЧрд┐рдердм рдореЗрдВ рд╕рд┐рддрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рд╣рд╛рдБ, рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рдПрдХ рдХрд╛рдо рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
  • рдПрдирдкреАрдПрдо рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ (рд╢рд╛рдпрдж рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ, рдПрдирдкреАрдПрдо рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╕рдорд╛рди рд╕реНрдЯреЗрдЯ, рдФрд░ рд╣рд╛рдВ, рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рдПрдХ рд▓рд┐рдм рдЪреБрдирддреЗ рд╣реИрдВ)

рдЗрди рдирдВрдмрд░реЛрдВ рдХреЛ рд╕рд╛рде-рд╕рд╛рде рд░рдЦрдиреЗ рдкрд░ рдХреБрдЫ рдХрд╛рдореЛрдВ рдореЗрдВ рд╣рдЬрд╛рд░реЛрдВ рд╕рд┐рддрд╛рд░реЗ рдФрд░ рд▓рд╛рдЦреЛрдВ рдбрд╛рдЙрдирд▓реЛрдб рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рд╕реИрдХрдбрд╝реЛрдВ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдореЗрд░реЗ 2 рд╕реЗрдВрдЯ, рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ, рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдпрд╛ рд╡рд┐рд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

axios рдХреЛ рдореЗрд░рд╛ рд╡реЛрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдлреНрд░рдВрдЯ-рдПрдВрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВред

рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ: ky (рдлреНрд░рдВрдЯрдПрдВрдб) рдФрд░ ky-universal (рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ)

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

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ got рд░реАрдбрдореА рдореЗрдВ got , request , node-fetch , axios , рдФрд░ superagent рдХреЗ рдмреАрдЪ рдПрдХ рдЕрдЪреНрдЫреА рддреБрд▓рдирд╛ рд╣реИ : https://github.com/sindresorhus/got#comparison
(рдпрджрд┐ рдЖрдк рдХреЛрдИ рдЕрд╢реБрджреНрдзрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдкреАрдЖрд░ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рддрдЯрд╕реНрде рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ)

request рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЙрдЯ рдХреЗ рдкрд╛рд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЧрд╛рдЗрдб рднреА рд╣реИ: https://github.com/sindresorhus/got/blob/master/migration-guides.md

рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдВ рдПрдкреАрдЖрдИ рд▓рд╛рдиреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░реИрдкрд░ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдиреЛрдб-рдлрд╝реЗрдЪ рдореЗрд░рд╛ рдЧреЛрдЯреЛ рд╣реИред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реБрдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕реЗ рдиреЛрдб рдореЗрдВ global.fetch рдкрд░ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ (рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреЙрд▓реАрдлрд┐рд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред isomorphic-fetch рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдиреЛрдб-рдлрд╝реЗрдЪ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд░реИрдкрд░ рд╣реИ, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдлрд╝реЗрдЪ рдкреЙрд▓реАрдлрд╝рд┐рд▓ (рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдлрд╝реЗрдЪ) рд╣реИред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рд╡рд┐рд░рд╛рд╕рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдиреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред

рдЕрд░реЗ, рдорд▓рдмреЗ (https://www.npmjs.com/package/wrec) рдореИрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

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

@Velveeta рдореИрдВ рдЧрдпрд╛ рдФрд░ рдЕрдХреНрд╖ рдХреЛрдбрдмреЗрд╕ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдХреЛрдИ рд╕рдмреВрдд рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ "рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдорд╛рдирдХ рдЕрдиреБрд░реЛрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп" рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗ?

@sindresorhus рдХреА рддреБрд▓рдирд╛ рдЙрдкрд░реЛрдХреНрдд рдореЗрд░реА рд╕реВрдЪреА рд╕реЗ рдХрд╣реАрдВ рдмреЗрд╣рддрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред https://github.com/sindresorhus/got#comparison

node-fetch/isomorphic-fetch рдЕрдзрд┐рдХрд╛рдВрд╢ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдирд┐рдореНрди рд╕реНрддрд░реАрдп рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХ рд╣реИред рдореБрдЭреЗ рдПрдХ рднреНрд░реВрдг рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрд░реЛрдз рд╢рд┐рдо рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

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

@mikeal рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ r2 рд╣реИред рдЗрд╕реЗ request рдХрд╛ рдЖрдзреНрдпрд╛рддреНрдорд┐рдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рдкреНрд░реЙрдорд┐рд╕ рдПрдкреАрдЖрдИ рд╣реИ рдФрд░ рдпрд╣ 16kb рдХрдВрдкреНрд░реЗрд╕реНрдб рд╣реИред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ Axios рдареАрдХ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Node.js рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ рдРрд╕рд╛ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрдм рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

image

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

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

рдЦреИрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХреНрд╕рд┐рдпреЛрд╕ рдХрд╛ рдПрдХ рд╣реА рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ ..

рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдХрд┐ рдкрд╣рд┐рдпрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдкрд╣рд┐рдпрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

@ofrobots рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреБрдирд┐рдВрджрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИред рдпреЗ рдореЗрд░рд╛:
Screen Shot 2019-04-04 at 1 58 24 PM

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

@Velveeta рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╣рд╛рдБ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрдЯрд╛-рд▓рд┐рдмреНрд╕ рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдлреНрд░рдВрдЯрдПрдВрдб рд╕реЗ рдореЗрд░рд╛ рд╡реЛрдЯ axios рдХреЗ рд▓рд┐рдП рд╣реИред рдЫреЛрдЯрд╛, рд╕реНрдерд┐рд░ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рддред

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдПрдлрдИ- рдФрд░ рдмреАрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ - рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдПрдкреАрдЖрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣рдЬ рд╣реИред

рдлрд╝реЗрдЪ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЖрд╡рд░рдг - рдиреЛрдб-рдлрд╝реЗрдЪ рдХреЗ рд╕рд╛рде рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ axios рдЬреИрд╕рд╛ рдЕрдиреБрднрд╡ рдЪрд╛рд╣рддреЗ рд╣реИрдВ fetch API рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, gaxios рд╣реИред рдпрд╣ Google рдХреЗ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Google API рдХреЗ Node.js рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рднреА HTTP рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд╢рдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдпреБрджреНрдз рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓рдЧрддрд╛ рд╣реИ!

(ЁЯСЛ @JustinBeckwith рдкрд░)

рдЕрд░реЗ, рдорд▓рдмреЗ (https://www.npmjs.com/package/wrec) рдореИрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

рдпрд╣ hapijs рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд http рдХреНрд▓рд╛рдЗрдВрдЯ рднреА рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рдл рд╣реИред

@mikeal рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ r2 рд╣реИред рдЗрд╕реЗ request рдХрд╛ рдЖрдзреНрдпрд╛рддреНрдорд┐рдХ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдПрдХ рдкреНрд░реЙрдорд┐рд╕ рдПрдкреАрдЖрдИ рд╣реИ рдФрд░ рдпрд╣ 16kb рдХрдВрдкреНрд░реЗрд╕реНрдб рд╣реИред

рдЙрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рдорд╛рди рдПрдкреАрдЖрдИ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ ky рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ ~1kb рдЫреЛрдЯрд╛ рдФрд░ gzipped рд╣реИ, рдФрд░ got рдХреЗ рд╕рдорд╛рди рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ Axios рдареАрдХ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Node.js рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ рдРрд╕рд╛ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрдм рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

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

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

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдлреЗрд╕рдмреБрдХ рдерд╛? рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдпрд╣ рд╕рднреА рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдЧреЛрдЯреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред

рд╣рдо рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЯрд┐рдВрдХрдСрдл-рдЕрдиреБрд░реЛрдз https://github.com/TinkoffCreditSystems/tinkoff-requestред рдЫреЛрдЯрд╛, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд▓рдЧ-рдЗрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬрдЯрд┐рд▓ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╕реЗ рдЯрд╛рдЗрдк-рд░реЗрд╕реНрдЯ-рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдерд╛? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдкреИрдХреЗрдЬ (рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╣реИ)ред

рдЗрд╕рдореЗрдВ wreck ( hapi рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рд╕реЗ) рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрдбрд╝реА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде https://github.com/grantila/fetch-h2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдХреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЛрдИ рдЬреНрдЮрд╛рдд рд╕рдВрдЧрдд рдбреНрд░реЙрдк-рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ? рдпрд╣ рдХреЗрдУрдП рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реИ рдФрд░ рдореБрдЭреЗ рд╕реНрдЯреНрд░реАрдо-рдкрд░реЗрд╢рд╛рдиреА рджреЗ рд░рд╣рд╛ рд╣реИ

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

рдХреБрдЫ рд╕рдордп рд╕реЗ bent рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдПрдкреАрдЖрдИ рдЕрдм рдХрд╛рдлреА рд╕реНрдерд┐рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ fetch рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ред Node.js рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, package.json рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИред

рддреЛ, рд╣рд╛рдВ, bent рдореЗрдВ рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИ:

  • рд╢реВрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдпрд╛ рдкреЙрд▓реАрдлрд╝рд┐рд▓ (рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдиреЗ рдФрд░ рдРрд░реЗрдмрдлрд╝рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдмрдлрд░ рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реИ)
  • ~ 2K рд╡реЗрдмрдкреИрдХ рдмрдВрдбрд▓ рдЕрди-рдорд┐рдирд┐рдлрд╛рдЗрдб рдпрд╛ gzipped (рдХрд┐рд╕реА рдХреЛ рдореБрдЭреЗ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЙрдирдХреЗ рдкрд╕рдВрджреАрджрд╛ рдорд┐рдиреАрдлрд╛рдпрд░ рдФрд░ рдХрдВрдкреНрд░реЗрд╢рд░реНрд╕ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реИ)ред
  • рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд╣реЗрдбрд▓реЗрд╕ рдХреНрд░реЛрдо рдореЗрдВ рдкрд╛рд╕ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ Node.js рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ 100% рдХрд╡рд░реЗрдЬ рд╣реИ (рдЕрднреА рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╡рд░реЗрдЬ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ)

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ @ рдорд╛рдЗрдХреЗрд▓

@csantanapr рдзрдиреНрдпрд╡рд╛рдж! :)

axios рдЖрдкрдХреА рдиреЛрдб рд╕реЗрд╡рд╛ рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: https://github.com/axios/axios/issues/1804

рдореЗрд░реЗ рд▓рд┐рдП, рд╢реАрд░реНрд╖ рдЪрд┐рдВрддрд╛рдПрдВ рд╣реИрдВ:

  • рдХреНрдпрд╛ рдпрд╣ рдореЗрд░реЗ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдиреНрдпреВрдирддрдо рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? (рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░рдХ: рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдкреНрд░реЙрдХреНрд╕реА HTTP рдФрд░ HTTPS рджреЛрдиреЛрдВ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП HTTP рд╣реИрдВ, рд╕рднреА рдкреНрд░реЙрдХреНрд╕реА рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ, рдЙрд╕реА рддрд░рд╣, ...)

    • рдЗрд╕рдиреЗ рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдпрд╛ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ред

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

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпреАрдЖрдЖрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рд╡рд╣рд╛рдВ рджреЛрд╖ рджреЗрддрд╛ рд╣реВрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ 2: рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ node-libcurl рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдЧрд╛ред

@joedski рд╣рд╛рдВ, рдкреНрд░реЙрдХреНрд╕реА рд╕рд╛рдорд╛рди рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рд╣рд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдФрд░ рдЯреАрдмреАрдПрдЪ, рдЙрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЗрд╕реЗ рдХрд░рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рдореЗрд░реЗ рд╕рд╣рд┐рдд;) рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдХреВрдж рдирд╣реАрдВ рд░рд╣рд╛ рд╣реВрдВ рдпрд╣ рдлрд┐рд░ рд╕реЗ рддреБрд▓рд╛ тАНтЩАя╕П . рдХреЗ рд▓рд┐рдП

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

рдирдиреНрд╣рд╛-рдЕрдиреБрд░реЛрдз (>1mio рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рдбрд╛рдЙрдирд▓реЛрдб)

рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдбреНрд░реЙрдк-рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЫреЛрдЯрд╛ - рдФрд░ рдХрдо рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рдеред рд╣реБрдб рдХреЗ рддрд╣рдд node-fetch рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдкреЙрдк рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдк request рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

node-fetch рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ "рдмреНрд░рд╛рдЙрдЬрд╝рд░" рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕реВрдЪрдирд╛ рджреА рдЧрдИ рд╣реИ (_Node.js_ рд╕реВрдЪреА рдХреЗ рдмрд┐рдВрджреБ рдХреЛ рд╣рд░рд╛рдХрд░)ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдорд╛рдкрд╛ рдЧрдпрд╛ рд╣реИ:

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдорд╛рдкрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

рд╡реЗ рд▓рдЧрднрдЧ ~ 40kb . рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реИрдВ

unfetch рднреА рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • рд╣реЛрдордкреЗрдЬ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ "рдиреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЬреЗрдПрд╕ рдХреЛ рдЖрдЗрд╕реЛрдореЛрд░реНрдлрд┐рдХ-рдЕрдирдлреЗрдЪ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ", рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рджреЛрдиреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
  • isomorphic-unfetch Node.js рдХреЗ рд▓рд┐рдП рдиреЛрдб-рдлрд╝реЗрдЪ ( рдХреЛрдб , рдбреЙрдХреНрд╕ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рд╕реЗ рдХрдо рдиреЛрдб-рдлрд╝реЗрдЪ (рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЪреВрдВрдХрд┐ рдЗрд╕реЗ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ node-fetch рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдХрд╛рдлреА рдЙрдкрд▓рдмреНрдзрд┐ рд╣реИред рдЗрд╕рдореЗрдВ рдЬрд┐рддрдирд╛ рдХреЛрдб рдФрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрднреА рднреА рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред fetch рдПрдХ рдЫреЛрдЯреЗ рдПрдкреАрдЖрдИ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рд╕рдВрдЧрдд рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╛рдордорд╛рддреНрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

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

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

IMO, рдЗрд╕ рд╕рдордп рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬреЛ Node.js рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреЛрдиреЛрдВ рдореЗрдВ рдПрдХ http рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ fetch рдФрд░ require(тАШhttpтАЩ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди API рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред fetch рдпрд╛ require(тАШhttpтАЩ) рдХреЛ рд▓рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрди рдПрдкреАрдЖрдИ рдХреЗ рдХрд┐рд╕реА рднреА рддрд░рдл рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк bent рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ https://github.com/mikeal/bent/tree/master/src

@mikeal рдореБрдЭреЗ рдПрдХ рдХрдард┐рди рд╕рдордп рдЪреБрдХрддрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ

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

OP рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз 0.4 kB рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдЬреЛ рджрд┐рдП рдЧрдП рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ?

@ рдбреЛрдореЗрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдмрд╣реБрдд рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб рдФрд░ рд╕рдВрдХреЗрдд рд╣реИред рдЖрдкрдХреЛ Blob API рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ, рдЖрдкрдХреЗ рдкрд╛рд╕ body рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ рд╣реИ, рдЖрдкрдХреЗ рдкрд╛рд╕ header marshalling рдХреА рд▓рдЧрднрдЧ 400 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдФрд░ рдпрд╣ рднреА рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреАрдЖрдИ рдЬреЛ рдЙрдЬрд╛рдЧрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдпрд╣ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк fetch API рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЯрди рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд, рдЪрддреБрд░ рдФрд░ рдЕрдВрддрддрдГ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб рд╣реИред

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

рд╣рдореНрдо, рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ "0.4 kB, рдЯреЗрдмрд▓ рдкрд░ рд╣рд░ рджреВрд╕рд░реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдХрдо рдФрд░ рддреБрд▓рд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ 0.25x рд╕реЗ рдХрдо" рдХреЗ рд╕рд╛рде "рдЕрдВрддрддрдГ рдЕрдирд╛рд╡рд╢реНрдпрдХ" рдХреЛрдб рдХреЗ "рдПрдХ рдЯрди" рдХреЛ рдХреИрд╕реЗ рд╡рд░реНрдЧрд╛рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдЬреЛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ "рд╕рд╣реА рд╣реИ" рджреГрд╖реНрдЯрд┐рдХреЛрдг" рдФрд░ "рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛")ред

@domenic рдХреНрдпрд╛ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ Node.js рдореЗрдВ рдЗрдиреНрд╣реЗрдВ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ node-fetch рдХреЛрдб рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рддреБрд▓рдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдУрдкреА рдореЗрдВ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ; рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдУрдкреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреА!

@domenic рдЖрд╣ рд╣рд╛рдБ, рд╡реЗ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рд╣реИрдВ, рдФрд░ рдЪреВрдВрдХрд┐ рдкреЛрд╕реНрдЯ рдмрд╣реБрдд рдкреБрд░рд╛рдиреА рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдкреБрд░рд╛рдиреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ bent рдЖрдВрдХрдбрд╝рд╛ рдЕрднреА рднреА рдХрд╛рдлреА рдХрд░реАрдм рд╣реИред

@ рд░реВрдЯ/рдЕрдиреБрд░реЛрдз - 500 рдПрд▓рдУрд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ 80/20 рдбреНрд░реЙрдк-рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, рдФрд░ рд╢реВрдиреНрдп рдирд┐рд░реНрднрд░рддрд╛:

рдЕрдиреБрд░реЛрдз.рдЬреЗрдПрд╕ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрдирд╛рдпрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЙрджреНрджреЗрд╢реНрдп рдкрд░ред

https://git.rootprojects.org/root/request.js

рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ! рдореИрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЗ рдпреЛрдЧреНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рд╢реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ рд╣реИ: https://github.com/emanuelcasco/http-packages-benchmark

рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдФрд░ рд░рд╛рдп рдХрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

s request рдЕрдм рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ request рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛-рдкреВрд░реНрдг рдбреНрд░реЙрдк-рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ $# request postman-request рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рдорд╣рддреНрд╡ рдкрд░ рдЕрдзрд┐рдХ рдЬреЛрд░ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛, рдФрд░ рд╕рдВрднрд╡рддрдГ @root/request рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ request рдХреЗ рд╕реАрдорд┐рдд рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдзрд╛рд░рд╛рдПрдБ

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

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

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рдбрд╛рдХрд┐рдпрд╛ рдЯреАрдо рдХреЛ рд╕реМрдВрдкрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ? request рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпреЛрдВ рди рдЙрдиреНрд╣реЗрдВ postman-request рд╕реЗ request рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЕрдиреБрд░рдХреНрд╖рдХ рдмрдирдиреЗ рджрд┐рдпрд╛ рдЬрд╛рдП?

рдпрд╣рд╛рдВ рдореЗрд░реА рдЕрдкрдиреА рдЫреЛрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ

рдХреЗрд╡рд▓ рдиреЛрдбрдЬ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛

const http = require('@zhangfuxing/http');
const assert = require('assert');

(async () => {
  // http
  const httpRes = await http.get('http://baidu.com');
  assert(httpRes.includes('<html>'));

  // https
  const httpsRes = await http.get('https://cnodejs.org/api/v1/topics?limit=1&mdrender=false');
  assert(httpsRes.success === true);

  // download file: use pipe
  const fs = require('fs');
  const res = await http.get('http://localhost:3000', {
    responseType: "stream"
  })
  res.pipe(require('fs').createWriteStream('zfx.txt'))
  // or use pipeline
  const stream = require('stream');
  const util = require('util');
  const pipeline = util.promisify(stream.pipeline);
  const res = await http.get(`${url}/stream`, {
    responseType: "stream"
  });
  await pipeline(res, fs.createWriteStream('zfx.txt'));

  // post Buffer
  const res = await http.post('http://localhost/upload', Buffer.from('abc'));
  assert(res.success === true);

  // post Stream
  const fs = require('fs');
  const readStream = fs.createReadStream('./index.js');
  const res = await http.post('http://localhost/upload', readStream);
  assert(res.success === true);

  // post json
  const data = {
    username: 'zfx',
    password: 'password'
  };
  const res = await http.post('http://localhost/upload', data);
  assert(res.success === true);

  // post application/x-www-form-urlencoded
  const data = {
    username: 'zfx',
    password: 'password'
  };
  const options = {
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  };
  const res = await http.post('http://localhost/upload', data, options);
  assert(res.success === true);

  // post FormData
  const FormData = require('form-data');
  const form = new FormData();
  const fs = require('fs');
  const readStream = fs.createReadStream('./index.js');
  form.append('my_field', 'my value');
  form.append('my_buffer', Buffer.from('abc'));
  form.append('my_file', readStream);
  // Set filename by providing a string for options
  form.append('my_file', readStream, '1.js' );
  // provide an object.
  form.append('my_file', readStream, { 
    filename: 'bar.jpg', 
    contentType: 'image/jpeg', 
    knownLength: 19806
  });
  const formHeaders = form.getHeaders();
  const res = await http.post('http://localhost/upload', form, {
    headers: {
      ...formHeaders,
    },
  });
  assert(res.success === true);

  // head
  const res = await http.head(url);
  assert(res.statusCode === 200);
  assert(res.statusMessage === 'OK');
  assert(res.headers && typeof res.headers === 'object');
  assert(res.statusCode === 200);
  assert(res.data === '');

  // options
  const res = await http.options(url);
  assert(res === 'GET,HEAD,POST,PUT,PATCH,DELETE'); 
})().catch(console.error);

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

рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА http2 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ?

@sakalys got рдореЗрдВ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ HTTP2 рд╕рдорд░реНрдерди рд╣реИ, рдЬреЛ рдЕрдЧрд▓реЗ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ (рдЬрд▓реНрдж рд╣реА рдмрд╛рд╣рд░) рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдФрд░ рд╕реНрдерд┐рд░ рд╣реЛрдЧрд╛ред

рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЗрдВ рдирд┐рдХрдЯ рдЧрд┐рд░рд╛рд╡рдЯ?

https://github.com/googleapis/teeny-request

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

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

Google gaxios рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ https://github.com/googleapis/gaxios - axios api over node-fetch

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ got рд░реАрдбрдореА рдореЗрдВ got , request , node-fetch , axios , рдФрд░ superagent рдХреЗ рдмреАрдЪ рдПрдХ рдЕрдЪреНрдЫреА рддреБрд▓рдирд╛ рд╣реИ : https://github.com/sindresorhus/got#comparison
_(рдпрджрд┐ рдЖрдк рдХреЛрдИ рддреНрд░реБрдЯрд┐ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдкреАрдЖрд░ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рддрдЯрд╕реНрде рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ)_

request рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЙрдЯ рдХреЗ рдкрд╛рд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЧрд╛рдЗрдб рднреА рд╣реИ: https://github.com/sindresorhus/got/blob/master/migration-guides.md

request рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Got's рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЛ _move_ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://github.com/sindresorhus/got/blob/master/documentation/migration-guides.md

рдХреНрдпрд╛ рдореИрдВ рдбрд╛рдХрд┐рдпрд╛-рдЕрдиреБрд░реЛрдз рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдЖрдЬрд╝рдорд╛рдЙрдВрдЧрд╛ред рд╡реИрд╕реЗ рднреА, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ...

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

Redaxios рджреЗрд╢реА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП 800 рдмрд╛рдЗрдЯ рдХреА рддрд░рд╣ рд╣реИ https://github.com/developit/redaxios

рднрдЧрд╡рд╛рди !! рдореИрдВ 3 рдШрдВрдЯреЗ рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдмрд╛рд░-рдмрд╛рд░ рдЕрдкрдирд╛ рдХреЛрдб рдЪреЗрдХ рдХрд┐рдпрд╛ред рдФрд░ рдЗрд╕рдиреЗ рдореБрдЭреЗ 404 рддреНрд░реБрдЯрд┐ рджреА, рдореИрдВ рдирд┐рд░рд╛рд╢ рдерд╛ред рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ Fetch рдХреЗ рд╕рд╛рде рдЬрд╛рдКрдВрдЧрд╛ред

https://www.npmjs.com/package/teeny-request рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Google API рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

Axios рдХрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрднреА рднреА рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИЁЯСОЁЯП┐

рдореБрдЭреЗ рдпрд╣рд╛рдВ рдлрд┐рди рди рджреЗрдЦрдХрд░ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖред

https://github.com/ethanent/phin

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ url-request ?

https://github.com/Debdut/Url

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ url-request ?

https://github.com/Debdut/Url

рдЕрднреА рднреА рдереЛрдбрд╝рд╛ рдпреБрд╡рд╛ (1 рджрд┐рди!)

@cjk рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХреЛ рдХреМрди рд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкрд╕рдВрдж рдЖрдПрдВрдЧреА? рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рддреНрд╡рд░рд┐рдд рдХреНрдпреВред рджреЗрд╢реА рдиреЛрдбрдЬ http рдХреЗ рдмрдЬрд╛рдп рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдлрд╛рдпрджрд╛ рд╣реИ?

@cgarrovillo рдЫреЛрдЯрд╛ рдХреЛрдб => рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡

рдпреВрдЖрд░рдПрд▓-рдЕрдиреБрд░реЛрдз рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдмрд╕ рдлреАрдЪрд░ рд╕реЗрдЯ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВ

@cjk рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХреЛ рдХреМрди рд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкрд╕рдВрдж рдЖрдПрдВрдЧреА? рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

@Debdut рдореИрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ рдЬреИрд╕реЗ:

  1. рдкреНрд░рдорд╛рдгреАрдХрд░рдг
  2. HTTP2
  3. рдкреНрд░реЙрдХреНрд╕реА-рд╕рдорд░реНрдерди
  4. рджрдмрд╛рд╡
  5. рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ
  6. рдХрд╕реНрдЯрдо рд╣реБрдХ
  7. рдЕрдиреБрд░реЛрдз рд░рджреНрдж рдХрд┐рдпрд╛ рдЧрдпрд╛

url-request рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдФрд░ рдХреИрд╕реЗред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХрдИ рдЙрджрд╛рд╣рд░рдг рдкрд╕рдВрдж рдЖрдП!

рдмрд╕ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рддрдХ рдХрд░рддреЗ рд░рд╣реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рди рдХрд░ рджреЗред

рдХреЛрдгреАрдп рдореЗрдВ rxjs рдФрд░ рдирдореВрджрд╛рд░ рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИрдВ

рдХрд┐рд╕реА рднреА lib рдореЗрдВ рдХреБрдХреА рдЬрд╛рд░ рдЕрдиреБрд░реЛрдз рдХреА рддрд░рд╣ рд╣реИ?

рдкрд░реАрдХреНрд╖рдг рдиреЛрдб рд▓рд╛рд▓ рдХреЗ рд╕рд╛рде HTTP рдкреБрд╕реНрддрдХрд╛рд▓рдп рдорд┐рд▓рд╛ред рдореИрдВ

  • рдПрдирдкреАрдПрдо рд╕реНрдерд╛рдкрд┐рдд
  • рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
  • рдЕрдм рдкреНрд░рд╡рд╛рд╣ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, рдореЗрд░реЗ рдЬреЗрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ _got_ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛

рдкрд░рд┐рдгрд╛рдо
HTTP рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╕рдордп рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (рдПрдХрд▓ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛)ред
FAILS HTTPS рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХрд░рддреЗ рд╕рдордпред рдореБрдЭреЗ рдорд┐рд▓рд╛ :
RequestError: connect ECONNREFUSED 127.0.0.1:443

рдкрд╣рд▓реЗ рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдиреЛрдб-рд░реЗрдб рдПрдирд╡реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рд╣реИред рдмрд╛рдж рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рд░реЗрдкреЛ рдореЗрдВ рдПрдХ рдЦреБрд▓рд╛ рдореБрджреНрджрд╛ рд╣реИ : https://github.com/sindresorhus/got/issues/1414ред рдореИрдВ
рдФрд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп _axios_ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдХрд╛рд░рдг рд╣реИред рдореИрдВ
рд╕рд┐рд░реНрдлрд╝ рдЗрддрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЬрд╛рдиреЛред

@damdauvaotran рдХрд┐рд╕реА рднреА lib рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреА рддрд░рд╣ рдХреБрдХреА рдЬрд╛рд░ рд╣реИ?

рджреЗрдЦреЗрдВ get.js, рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЧрд╛рдЗрдб ред

gaxios рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдпрд╣рд╛рдВ рдПрдХ рдПрдирдкреАрдПрдо рдЯреНрд░реЗрдВрдб рд▓рд┐рдВрдХ рд╣реИ рдЬреЛ рд╢реАрд░реНрд╖ рдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдирд┐рд░реНрдгрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп, node-fetch рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдХрд▓реНрдк рд╣реИред
Screen Shot 2020-09-03 at 1 14 41 PM

рджрд┐рд▓рдЪрд╕реНрдк @ericsnap ... node-fetch рдФрд░ axios рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдореЗрдВ рдХреНрд░рдорд╢рдГ рдкрд╣рд▓реЗ рдФрд░ рддреАрд╕рд░реЗ (рд▓рдЧрднрдЧ рджреВрд╕рд░реЗ) рд╣реИрдВред

рдФрд░ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдЯреНрд░реИрдкрд▓рд╛рдЗрди рдХреЛ gaxios рдбреЙрдХреНрд╕ рд╕реЗ рдиреЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ:

рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЛ рдиреЛрдб-рдлрд╝реЗрдЪ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдЕрдХреНрд╖ рдЬреИрд╕рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ

рддреЛ gaxios рджреЛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдореИрдВ gaxios рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдордЬреЗрджрд╛рд░ рд╣реИред

рдиреЛрдб-рд▓рд╛рдиреЗ / рдЕрдХреНрд╖

https://www.npmtrends.com/node-fetch-vs-got-vs-axios-vs-superagent

image

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

рдореИрдВ рдкреНрд░рд╡рд╛рд╕рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдмрд╣реБрдд рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

svlungade picture svlungade  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lupo9557 picture lupo9557  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jsspace picture jsspace  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

IgorDePaula picture IgorDePaula  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chenby picture chenby  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ