рдирдорд╕реНрддреЗ,
рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рд╣реЛрддрд╛ рд╣реИ!
const request = require('request');
const axios = require('axios');
const url = 'http://www.bestbuy.com/';
request({
url: url,
timeout: 5000
}, (error, response, body) => {
if (!error)
console.log(`request got ${response.statusCode}`);
else
console.error(`request got an error`, error);
});
axios.get(url).then((ret) => {
console.log(`Axios got ${ret.status}`);
});
рдЖрдЙрдЯрдкреБрдЯ:
Axios got 200
request got an error { Error: ESOCKETTIMEDOUT
at ClientRequest.<anonymous> (/Users/amir/dev/test/testVideosFb/node_modules/request/request.js:819:19)
at Object.onceWrapper (events.js:293:19)
at emitNone (events.js:86:13)
at ClientRequest.emit (events.js:188:7)
at Socket.emitTimeout (_http_client.js:679:10)
at Object.onceWrapper (events.js:293:19)
at emitNone (events.js:86:13)
at Socket.emit (events.js:188:7)
at Socket._onTimeout (net.js:345:8)
at ontimeout (timers.js:380:14) code: 'ESOCKETTIMEDOUT', connect: false }
рдореЗрд░рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдиреЛрдб 7.7.2/8.3.0 рдФрд░ рдЕрдиреБрд░реЛрдз@2.81.0 . рд╣реИ
рдЗрд╕ ESOCKETTIMEOUT рдореБрджреНрджреЗ рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рднреА рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред
рдХреНрдпрд╛ ESOCKETTIMEOUT рд╕реЙрдХреЗрдЯ рдкреВрд▓рд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдиреЛрдб рдореЗрдВ рд╕реЙрдХреЗрдЯ рдкреВрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ
`var http = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('http');
http.globalAgent.maxSockets = рдЗрдиреНрдлрд┐рдирд┐рдЯреА;
рд╡рд░ https = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('https');
https.globalAgent.maxSockets = Infinity;`
рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рдХреЛ ESOCKETTIMEOUT рдирд╣реАрдВ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛?
рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рдореБрджреНрджрд╛
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрджрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ async рдЕрдиреБрд░реЛрдз рд╣реИрдВ, рддреЛ linux рдореЗрдВ ESOCKETTIMEDOUT рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЬреЛ рдХрд╛рдордХрд╛рдЬ рдкрд╛рдпрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рдХрд░ рд░рд╣рд╛ рд╣реИ:
рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ ():
agent: false, pool: {maxSockets: 100}
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдпрд╣рд╛рдБ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ +1
agent: false, pool: {maxSockets: 100}
рдорджрдж рдирд╣реАрдВ рдХреА
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ bestbuy.com рдЕрдиреБрд░реЛрдз рд╕реЗ рднреЗрдЬреЗ рдЬрд╛ рд░рд╣реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдЙрд╕реА рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ axios рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдордп рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ:
const request = require('request');
const axios = require('axios');
const url = 'http://www.bestbuy.com/';
request({
url: url,
timeout: 5000,
headers: {
"Accept": "application/json, text/plain, */*",
"User-Agent": "axios/0.18.0"
}
}, (error, response, body) => {
if (!error)
console.log(`request got ${response.statusCode}`);
else
console.error(`request got an error`, error);
});
axios.get(url).then((ret) => {
console.log(`Axios got ${ret.status}`);
});
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ bestbuy.com рдЕрдиреБрд░реЛрдз рд╕реЗ рднреЗрдЬреЗ рдЬрд╛ рд░рд╣реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реАрд░реНрд╖рд▓реЗрдЦреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдЙрд╕реА рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ axios рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдордп рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ: