Node.js рдЧрд╛рдЗрдб, рднрд╛рдЧ 10: рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓, рд╕реНрдЯреНрд░реАрдо, рдбреЗрдЯрд╛рдмреЗрд╕, NODE_ENV

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



[рд╣рдо рдЖрдкрдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ] рдЪрдХреНрд░ рдХреЗ рдЕрдиреНрдп рднрд╛рдЧ
рднрд╛рдЧ 1: рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЖрд░рдВрдн рдХрд░рдирд╛
рднрд╛рдЧ 2: рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, V8, рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЧреБрд░
рднрд╛рдЧ 3: рд╣реЛрд╕реНрдЯрд┐рдВрдЧ, рдЖрд░рдИрдкреАрдПрд▓, рдХрдВрд╕реЛрд▓, рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рднрд╛рдЧ 4: npm, package.json рдФрд░ package-lock.json рдлрд╛рдЗрд▓реЗрдВ
рднрд╛рдЧ 5: npm рдФрд░ npx
рднрд╛рдЧ 6: рдИрд╡реЗрдВрдЯ рд▓реВрдк, рдХреЙрд▓ рд╕реНрдЯреИрдХ, рдЯрд╛рдЗрдорд░
рднрд╛рдЧ 7: рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рднрд╛рдЧ 8: HTTP рдФрд░ WebSocket рдкреНрд░реЛрдЯреЛрдХреЙрд▓
рднрд╛рдЧ 9: рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
рднрд╛рдЧ 10: рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓, рдереНрд░реЗрдбреНрд╕, рдбреЗрдЯрд╛рдмреЗрд╕, NODE_ENV
Node.js рдЧрд╛рдЗрдб рдХреА рдкреВрд░реНрдг рдкреАрдбреАрдПрдл

Node.js рдУрдПрд╕ рдореЙрдбреНрдпреВрд▓


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

 const os = require('os') 

рдпрд╣рд╛рдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рдЧреБрдг рд╣реИрдВ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдореЗрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВред

рддреЛ, os.EOL рд╕рдВрдкрддреНрддрд┐ os.EOL рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд▓рд╛рдЗрди рд╡рд┐рднрд╛рдЬрдХ (рдПрдХ рд▓рд╛рдЗрди os.EOL ) рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдкрд░, рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ \n , \r\n ред

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬрдм рд╣рдо рдпрд╣рд╛рдВ "рд▓рд┐рдирдХреНрд╕ рдФрд░ macOS" рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо POSIX- рд╕рдВрдЧрдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣рд╛рдВ рдХрдо рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

os.constants.signals рдкреНрд░реЙрдкрд░реНрдЯреА, SIGKILL , рдЬреИрд╕реЗ рд╕рд┐рдЧреНрдирд▓, SIGKILL , рдФрд░ рдЗрддрдиреЗ рдкрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддреА рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

os.constants.errno рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдЬреИрд╕реЗ EADDRINUSE , EOVERFLOW ред

рдЕрдм os рдореЙрдбреНрдпреВрд▓ рдХреЗ рдореБрдЦреНрдп рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

тЦНos.arch ()


рдпрд╣ рд╡рд┐рдзрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, arm , x64 , arm64 ред

тЦНos.cpus ()


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

 [ { model: 'Intel(R) Core(TM)2 Duo CPU     P8600 @ 2.40GHz',   speed: 2400,   times:    { user: 281685380,      nice: 0,      sys: 187986530,      idle: 685833750,      irq: 0 } }, { model: 'Intel(R) Core(TM)2 Duo CPU     P8600 @ 2.40GHz',   speed: 2400,   times:    { user: 282348700,      nice: 0,      sys: 161800480,      idle: 703509470,      irq: 0 } } ] 

тЦНos.endianness ()


рдмреА.рдИ.рдИ. рдпрд╛ LE рдЕрдиреБрд╕рд╛рд░ рдЬреЛ рдмрд╛рдЗрдЯ рдСрд░реНрдбрд░ (рдмрд┐рдЧ рдПрдВрдЧрд┐рдпрди рдпрд╛ рд▓рд┐рдЯрд┐рд▓ рдПрдВрдбрд┐рдпрди) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдХрд╛ рдЙрдкрдпреЛрдЧ Node.s.s.s.f рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

тЦНos.freemem ()


рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдореБрдлреНрдд рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рджреЗрддрд╛ рд╣реИред

Omos.homedir ()


рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкрде рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, '/Users/flavio' ред

тЦНos.hostname ()


рдореЗрдЬрдмрд╛рди рдирд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИред

тЦНos.loadavg ()


рдПрдХ рд╕рд░рдгреА рдореЗрдВ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдФрд╕рдд рд▓реЛрдб рдбреЗрдЯрд╛ред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ рдФрд░ macOS рдкрд░ рд╕рдордЭ рдореЗрдВ рдЖрддреА рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

 [ 3.68798828125, 4.00244140625, 11.1181640625 ] 

тЦНos.networkInterfaces ()


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

 { lo0:  [ { address: '127.0.0.1',      netmask: '255.0.0.0',      family: 'IPv4',      mac: 'fe:82:00:00:00:00',      internal: true },    { address: '::1',      netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',      family: 'IPv6',      mac: 'fe:82:00:00:00:00',      scopeid: 0,      internal: true },    { address: 'fe80::1',      netmask: 'ffff:ffff:ffff:ffff::',      family: 'IPv6',      mac: 'fe:82:00:00:00:00',      scopeid: 1,      internal: true } ], en1:  [ { address: 'fe82::9b:8282:d7e6:496e',      netmask: 'ffff:ffff:ffff:ffff::',      family: 'IPv6',      mac: '06:00:00:02:0e:00',      scopeid: 5,      internal: false },    { address: '192.168.1.38',      netmask: '255.255.255.0',      family: 'IPv4',      mac: '06:00:00:02:0e:00',      internal: false } ], utun0:  [ { address: 'fe80::2513:72bc:f405:61d0',      netmask: 'ffff:ffff:ffff:ffff::',      family: 'IPv6',      mac: 'fe:80:00:20:00:00',      scopeid: 8,      internal: false } ] } 

тЦНos.platform ()


рдЙрд╕ рдордВрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП Node.js. рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдБ рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд┐рдЯрд░реНрди рдорд╛рди рджрд┐рдП рдЧрдП рд╣реИрдВ:

  • рдбрд╛рд░реНрд╡рд┐рди
  • FreeBSD
  • linux
  • OpenBSD
  • Win32

тЦНos.release ()


рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрдЦреНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

тЦНos.tmpdir ()


рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкрде рджреЗрддрд╛ рд╣реИред

тЦНos.totalmem ()


рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рдХреА рдХреБрд▓ рд░рд╛рд╢рд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

тЦНos.type ()


рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • Linux - рд▓рд┐рдирдХреНрд╕ред
  • Darwin - macOSред
  • Windows_NT - рд╡рд┐рдВрдбреЛрдЬрд╝ред

тЦНos.uptime ()


рдЕрдВрддрд┐рдо рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рд╕реЗрдХрдВрдб рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдЯрд╛рдЗрдо рд▓реМрдЯрд╛рддрд╛ рд╣реИред

Node.js рдИрд╡реЗрдВрдЯ рдореЙрдбреНрдпреВрд▓


events рдореЙрдбреНрдпреВрд▓ рд╣рдореЗрдВ EventEmitter рдХреНрд▓рд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдИрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдордЧреНрд░реА рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рддрд╡реЗрдВ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХреАред рдпрд╣рд╛рдБ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреЛрдб рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ EventEmitter рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 const EventEmitter = require('events') const door = new EventEmitter() 

EventEmitter рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рдорд╛рдирдХ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдирд╛рдПрдБ:

  • newListener - рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ newListener рдЬрдм рдПрдХ рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
  • removeListener - рдмреБрд▓рд╛рдпрд╛ рдЬрдм рд╣реИрдВрдбрд▓рд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

EventEmitter рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рддрд░реАрдХреЛрдВ рдХреЗ рдирд╛рдо рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╡рд╕реНрддреБ рдХреЛ emitter рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

тЦНemitter.addListener ()


emitter.on() рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдоред

тЦНemitter.emit ()


рдПрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рд╡реЗ рдкрдВрдЬреАрдХреГрдд рдереЗред

тЦНemitter.eventNames ()


рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдШрдЯрдирд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВред

тЦНemitter.getMaxListeners ()


EventEmitter рд╡рд░реНрдЧ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 10 рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ setMaxListeners() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдврд╝рд╛рдпрд╛ рдпрд╛ рдШрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

тЦНemitter.listenerCount ()


рдЙрд╕ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 door.listenerCount('open') 

тЦНemitter.listeners ()


рд╕рдВрдмрдВрдзрд┐рдд рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 door.listeners('open') 

тЦНemitter.off ()


emitter.removeListener() 10 рдореЗрдВ рд╢реБрд░реВ рдХреА рдЧрдИ emitter.removeListener() рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдоред

тЦНemitter.on ()


рдПрдХ рдХреЙрд▓рдмреИрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ рдЬреЛ рдПрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:

 door.on('open', () => { console.log('Door was opened') }) 

тЦНemitter.once ()


рдпрд╣ рдПрдХ рдХреЙрд▓рдмреИрдХ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреА рдкрд╣рд▓реА рдШрдЯрдирд╛ рдкрд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЙрд▓рдмреИрдХ рдкрдВрдЬреАрдХреГрдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 const EventEmitter = require('events') const ee = new EventEmitter() ee.once('my-event', () => { //         }) 

тЦНemitter.prependListener ()


on() рдпрд╛ addListener() рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп, рдЗрд╕ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╣реИрдВрдбрд▓рд░ рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдИрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред prependListener() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ prependListener() , рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрддрд╛рд░ рдХреЗ рд╕рд╛рдордиреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

тЦНemitter.prependOnceListener ()


рдпрд╣ рд╡рд┐рдзрд┐ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЕрд░реНрдерд╛рддреН, рдЬрдм рдПрдХ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫрд┐рдд рд╣реИрдВрдбрд▓рд░ рдХреЛ рдПрдХ once() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╣реИрдВрдбрд▓рд░ рдХреА рдХрддрд╛рд░ рдореЗрдВ рдЕрдВрддрд┐рдо рдФрд░ рдЕрдВрддрд┐рдо рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред prependOnceListener() рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдХрддрд╛рд░ рдХреЗ рд╕рд╛рдордиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

тЦНemitter.removeAllListeners ()


рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИред рд╡реЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

 door.removeAllListeners('open') 

тЦНemitter.removeListener ()


рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣рдЯрд╛рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмрд╛рдж рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдмреИрдХ рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 const doSomething = () => {} door.on('open', doSomething) door.removeListener('open', doSomething) 

тЦНemitter.setMaxListeners ()


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

 door.setMaxListeners(50) 

Node.js http рдореЙрдбреНрдпреВрд▓


рд╕рд╛рдордЧреНрд░реА рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЖрдард╡реЗрдВ рднрд╛рдЧ рдореЗрдВ, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдорд╛рдирдХ Node.js http рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИред рд╡рд╣ HTTP рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдбреЗрд╡рд▓рдкрд░ рддрдВрддреНрд░ рдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИред рдпрд╣ Node.js. рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрдб рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 const http = require('http') 

рдЗрд╕рдореЗрдВ рдЧреБрдг, рд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ рд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЖрдЗрдП рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

тЦНSvoystva


http.METHODS


рдпрд╣ рдЧреБрдг рд╕рднреА рд╕рдорд░реНрдерд┐рдд HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ:

 > require('http').METHODS [ 'ACL', 'BIND', 'CHECKOUT', 'CONNECT', 'COPY', 'DELETE', 'GET', 'HEAD', 'LINK', 'LOCK', 'M-SEARCH', 'MERGE', 'MKACTIVITY', 'MKCALENDAR', 'MKCOL', 'MOVE', 'NOTIFY', 'OPTIONS', 'PATCH', 'POST', 'PROPFIND', 'PROPPATCH', 'PURGE', 'PUT', 'REBIND', 'REPORT', 'SEARCH', 'SUBSCRIBE', 'TRACE', 'UNBIND', 'UNLINK', 'UNLOCK', 'UNSUBSCRIBE' ] 

http.STATUS_CODES


рдЗрд╕рдореЗрдВ HTTP рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдб рдФрд░ рдЙрдирдХреЗ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

 > require('http').STATUS_CODES { '100': 'Continue', '101': 'Switching Protocols', '102': 'Processing', '200': 'OK', '201': 'Created', '202': 'Accepted', '203': 'Non-Authoritative Information', '204': 'No Content', '205': 'Reset Content', '206': 'Partial Content', '207': 'Multi-Status', '208': 'Already Reported', '226': 'IM Used', '300': 'Multiple Choices', '301': 'Moved Permanently', '302': 'Found', '303': 'See Other', '304': 'Not Modified', '305': 'Use Proxy', '307': 'Temporary Redirect', '308': 'Permanent Redirect', '400': 'Bad Request', '401': 'Unauthorized', '402': 'Payment Required', '403': 'Forbidden', '404': 'Not Found', '405': 'Method Not Allowed', '406': 'Not Acceptable', '407': 'Proxy Authentication Required', '408': 'Request Timeout', '409': 'Conflict', '410': 'Gone', '411': 'Length Required', '412': 'Precondition Failed', '413': 'Payload Too Large', '414': 'URI Too Long', '415': 'Unsupported Media Type', '416': 'Range Not Satisfiable', '417': 'Expectation Failed', '418': 'I\'ma teapot', '421': 'Misdirected Request', '422': 'Unprocessable Entity', '423': 'Locked', '424': 'Failed Dependency', '425': 'Unordered Collection', '426': 'Upgrade Required', '428': 'Precondition Required', '429': 'Too Many Requests', '431': 'Request Header Fields Too Large', '451': 'Unavailable For Legal Reasons', '500': 'Internal Server Error', '501': 'Not Implemented', '502': 'Bad Gateway', '503': 'Service Unavailable', '504': 'Gateway Timeout', '505': 'HTTP Version Not Supported', '506': 'Variant Also Negotiates', '507': 'Insufficient Storage', '508': 'Loop Detected', '509': 'Bandwidth Limit Exceeded', '510': 'Not Extended', '511': 'Network Authentication Required' } 

http.globalAgent


рдпрд╣ рд╕рдВрдкрддреНрддрд┐ http.Agent рд╡рд░реНрдЧ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреА рдУрд░ http.Agent ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ Node.js. HTTP рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рдкреНрд░рдореБрдЦ рдШрдЯрдХ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдиреАрдЪреЗ http.Agent рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

тЦНMetody


http.createServer ()


http.Server рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред HTTP рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:

 const server = http.createServer((req, res) => { //      }) 

http.request ()


рдЖрдкрдХреЛ http.ClientRequest рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдХрд░ рд╕рд░реНрд╡рд░ рд╕реЗ HTTP рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

http.get ()


рдпрд╣ рд╡рд┐рдзрд┐ http.request() рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ HTTP рд╡рд┐рдзрд┐ рдХреЛ GET рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ req.end() рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред

тЦН рдХрдХреНрд╖рд╛рдПрдВ


HTTP рдореЙрдбреНрдпреВрд▓ 5 рдХреНрд▓рд╛рд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - Agent , ClientRequest , Server , ServerResponse рдФрд░ ServerResponse ред рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

http.Agent


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

http.ClientRequest


http.ClientRequest рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ, рдЬреЛ рдПрдХ рдЪрд▓ рд░рд╣рд╛ рдЕрдиреБрд░реЛрдз рд╣реИ, рдЬрдм http.request() рдпрд╛ http.get() рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдХрд┐рд╕реА рдЕрдиреБрд░реЛрдз рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдирд╛ рдЙрдард╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ - http.IncomingMessage рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред рдХреНрд╡реЗрд░реА рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдЖрдк response.read() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • response рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рдЖрдк data рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд░реЛрддрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

http.Server


рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ http.createServer() рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП listen() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • close() рд╡рд┐рдзрд┐ рд╕рд░реНрд╡рд░ рдХреЛ рд░реЛрдХрддреА рд╣реИред

http.ServerResponse


рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ http.Server рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ http.Server рд╣реЛрдиреЗ рдкрд░ request рдЗрд╡реЗрдВрдЯ рдХреЗ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреЛрдб рдореЗрдВ рдирд╛рдо res рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 const server = http.createServer((req, res) => { //res -   http.ServerResponse }) 

рдРрд╕реЗ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, end() рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдБ HTTP рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ:

  • getHeaderNames() - рд╕реНрдерд╛рдкрд┐рдд рд╣реЗрдбрд░ рдХреЗ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред
  • getHeaders() - рд╕реЗрдЯ HTTP рд╣реЗрдбрд░ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • setHeader('headername', value) - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
  • getHeader('headername') рд╢реАрд░реНрд╖ рд▓реЗрдЦ getHeader('headername') - рд╕реЗрдЯ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • removeHeader('headername') рд╢реАрд░реНрд╖ рд▓реЗрдЦ removeHeader('headername') - рд╕реНрдерд╛рдкрд┐рдд рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред
  • hasHeader('headername') - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ true рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╢реАрд░реНрд╖рдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред
  • headersSent() - рд╣реЗрдбрд░ рдкрд╣рд▓реЗ рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рдкрд░ рд╕рд╣реА рд╣реИред

рд╣реЗрдбрд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ response.writeHead() рд╡рд┐рдзрд┐ рд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рд▓реЗрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдФрд░ рд╣реЗрдбрд░ рдХреЗ рдЕрдиреБрд░реВрдк рдПрдХ рд╕рдВрджреЗрд╢ рдХреЛ рдЗрд╕рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмреЙрдбреА рдореЗрдВ write() рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ HTTP рдкреНрд░рддрд┐рд╕рд╛рдж рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдмрдлрд╝рд░реНрдб рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред

рдпрджрд┐ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдЕрднреА рддрдХ response.writeHead() рд╕рд╛рде рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред response.writeHead() рдХрдорд╛рдВрдб, рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╣реЗрдбрд░ рдФрд░ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрджреЗрд╢ рдкрд╣рд▓реЗ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк statusCode рдФрд░ statusMessage рд▓рд┐рдП рдорд╛рди рд╕реЗрдЯ рдХрд░рдХреЗ рдЙрдирдХреЗ рдорд╛рди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ statusMessage :

 response.statusCode = 500 response.statusMessage = 'Internal Server Error' 

http.IncomingMessage


http.IncomingMessage рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрдВрддреНрд░реЛрдВ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ:

  • http.Server - request рдШрдЯрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордпред
  • http.ClientRequest - response рдШрдЯрдирд╛ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╕рдордпред

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН:

  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрджреЗрд╢ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, statusCode рдФрд░ statusMessage рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдЖрдк headers рдпрд╛ rawHearders (рдХрдЪреНрдЪреЗ рд╣реЗрдбрд░ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП) rawHearders рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ headers рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
  • рдЖрдк method рдЧреБрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рд╡рд┐рдзрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред
  • рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ HTTP рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, httpVersion рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • URL рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, url рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред
  • socket рдЧреБрдг рдЖрдкрдХреЛ net.Socket рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ net.Socket рдСрдмреНрдЬреЗрдХреНрдЯред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ http.IncomingMessage рдмрд╛рдж рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред http.IncomingMessage рд╡рд╛рд▓реА http.IncomingMessage рдСрдмреНрдЬреЗрдХреНрдЯ Readable Stream рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

Node.js рдореЗрдВ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


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

рдзрд╛рдЧреЗ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ Node.js. рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реИ рд╡реЗ рджрд╢рдХреЛрдВ рдкрд╣рд▓реЗ рдУрдПрд╕ рдХреЗ рдпреВрдирд┐рдХреНрд╕ рдкрд░рд┐рд╡рд╛рд░ рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдзрд╛рд░рд╛рдУрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд╛рдЗрдк рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ - - | )ред

рдпрджрд┐ рд╣рдо рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдирд╛, рддреЛ, рдЗрд╕реА рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

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

Node.js рд╕реНрдЯреНрд░реАрдо рдореЙрдбреНрдпреВрд▓ рд╡рд╣ рдиреАрдВрд╡ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА API рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ StrengthAbout рддрд╛рдХрдд


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

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

Reams рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рдЙрджрд╛рд╣рд░рдг


рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдбрд┐рд╕реНрдХ рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдиреЗ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдкрд╣рд▓реЗ, рдЙрд╕ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдорд╛рдирдХ Node.js fs рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ HTTP рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 const http = require('http') const fs = require('fs') const server = http.createServer(function (req, res) { fs.readFile(__dirname + '/data.txt', (err, data) => {   res.end(data) }) }) server.listen(3000) 

рдпрд╣рд╛рдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА readFile() рд╡рд┐рдзрд┐ рд╕реЗ рдЖрдк рдкреВрд░реА рдлрд╛рдЗрд▓ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рд░реАрдбрд┐рдВрдЧ рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╡рд╣ рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред

res.end(data) рд╡рд┐рдзрд┐, рдЬрд┐рд╕реЗ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рднреЗрдЬрддрд╛ рд╣реИред

рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдмрдбрд╝рд╛ рд╣реИ, рддреЛ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдпрд╣рд╛рдБ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:

 const http = require('http') const fs = require('fs') const server = http.createServer((req, res) => { const stream = fs.createReadStream(__dirname + '/data.txt') stream.pipe(res) }) server.listen(3000) 

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

тЦНрдкрд╛рдЗрдк () рд╡рд┐рдзрд┐


рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдлреЙрд░реНрдо рд╕реНрдЯреНрд░реАрдо stream.pipe(res) рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ pipe() рдлрд╝рд╛рдЗрд▓ рд╕реНрдЯреНрд░реАрдо рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рдбреЗрдЯрд╛ рд▓реЗрддреА рд╣реИ рдФрд░ рдЧрдВрддрд╡реНрдп рдкрд░ рднреЗрдЬрддреА рд╣реИред

рдЗрд╕реЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдзрд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╕реНрдЯреНрд░реАрдо рд╣реИ рдЬреЛ HTTP рдкреНрд░рддрд┐рд╕рд╛рдж рдХреЗ рд▓рд┐рдП рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред

pipe() рдХрд╛ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп pipe() рд╡рд┐рдзрд┐ рд▓рдХреНрд╖реНрдп рдзрд╛рд░рд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ pipe() рд╡рд┐рдзрд┐ рдореЗрдВ рдХрдИ рдХреЙрд▓ рдХреЛ рдЪреЗрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

 src.pipe(dest1).pipe(dest2) 

рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:

 src.pipe(dest1) dest1.pipe(dest2) 

тЦНAPI Node.js рдЬреЛ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ


рдзрд╛рд░рд╛рдПрдБ рдПрдХ рдЙрдкрдпреЛрдЧреА рддрдВрддреНрд░ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, Node.js рдХрд░реНрдиреЗрд▓ рдХреЗ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдХреНрд╖рдорддрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ:

  • process.stdin - stdin рдЬреБрдбрд╝рд╛ рдПрдХ рдереНрд░реЗрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • process.stdout - рд╕реНрдЯрдбрдЖрдЙрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рдереНрд░реЗрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • process.stderr - stderr рдЬреБрдбрд╝рд╛ рдПрдХ рдзрд╛рдЧрд╛ рджреЗрддрд╛ рд╣реИред
  • fs.createReadStream() - рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдардиреАрдп рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рддрд╛ рд╣реИред
  • fs.createWriteStream() - рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рддрд╛ рд╣реИред
  • net.connect() - рдПрдХ рд╕реНрдЯреНрд░реАрдо-рдЖрдзрд╛рд░рд┐рдд рдХрдиреЗрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
  • http.request() - http.ClientRequest рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • zlib.createGzip() - gzip рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ gzip рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрдЯреНрд░реАрдо рдкрд░ рднреЗрдЬрддрд╛ рд╣реИред
  • zlib.createGunzip() - рдПрдХ gzip рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред
  • zlib.createDeflate() - zlib.createDeflate() рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрдЯреНрд░реАрдо рдкрд░ рднреЗрдЬрддрд╛ рд╣реИред
  • zlib.createInflate() - рдПрдХ zlib.createInflate() рдзрд╛рд░рд╛ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдзрд╛рд░рд╛рдПрдБ


рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреА рдзрд╛рд░рд╛рдПрдБ рд╣реИрдВ:

  • рдПрдХ рдкрдардиреАрдп рдзрд╛рд░рд╛ рдПрдХ рдзрд╛рд░рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдРрд╕реА рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗред рдЬрдм рдбреЗрдЯрд╛ рдРрд╕реА рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рддрдм рддрдХ рдмрдлрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдбреЗрдЯрд╛ рдЙрдкрднреЛрдХреНрддрд╛ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддрд╛ред
  • рд░рд╛рдЗрдЯрд┐рдВрдЧ (рд▓реЗрдЦрди) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░реАрдо рдПрдХ рд╕реНрдЯреНрд░реАрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдбреЗрдЯрд╛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕рд╕реЗ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
  • рдбреБрдкреНрд▓реЗрдХреНрд╕ рд╕реНрдЯреНрд░реАрдо ( Duplex ) - рдЗрд╕ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЖрдк рдбреЗрдЯрд╛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореВрд▓рддрдГ рдпрд╣ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рд░рд╛ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╣реИ рдФрд░ рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рд░рд╛ рд╣реИред
  • рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рд╕реНрдЯреНрд░реАрдо ( Transform ) - рдРрд╕реА рдзрд╛рд░рд╛рдПрдБ рдбреБрдкреНрд▓реЗрдХреНрд╕ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рд╣реЛрддреА рд╣реИрдВ, рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рдзрд╛рд░рд╛рдУрдВ рдХреЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдЬреЛ рдЖрддрд╛ рд╣реИ, рд╡рд╣ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдЙрдирд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

тЦН рдПрдХ рдкрдврд╝реЗрдВ рдзрд╛рд░рд╛ рдмрдирд╛рдПрдБ


, stream :

 const Stream = require('stream') const readableStream = new Stream.Readable() 

, :

 readableStream.push('hi!') readableStream.push('ho!') 

тЦН


Writable _write() . :

 const Stream = require('stream') const writableStream = new Stream.Writable() 

_write() :

 writableStream._write = (chunk, encoding, next) => {   console.log(chunk.toString())   next() } 

, :

 process.stdin.pipe(writableStream) 

тЦН


, , :

 const Stream = require('stream') const readableStream = new Stream.Readable() const writableStream = new Stream.Writable() writableStream._write = (chunk, encoding, next) => {   console.log(chunk.toString())   next() } readableStream.pipe(writableStream) readableStream.push('hi!') readableStream.push('ho!') readableStream.push(null) 

readableStream.push(null) .

, readable :

 readableStream.on('readable', () => { console.log(readableStream.read()) }) 

тЦН


write() :

 writableStream.write('hey!\n') 

тЦН ,


, , end() :

 writableStream.end() 

. , , .

MySQL Node.js


MySQL . Node.js , MySQL-, тАФ , .

mysqljs/mysql . , , 12000 GitHub. , MySQL-.

тЦН


:

 npm install mysql 

тЦН


:

 const mysql = require('mysql') 

:

 const options = { user: 'the_mysql_user_name', password: 'the_mysql_user_password', database: 'the_mysql_database_name' } const connection = mysql.createConnection(options) 

:

 connection.connect(err => { if (err) {   console.error('An error occurred while connecting to the DB')   throw err } } 

тЦН


options :

 const options = { user: 'the_mysql_user_name', password: 'the_mysql_user_password', database: 'the_mysql_database_name' } 

. тАФ :

  • host тАФ , MySQL-, тАФ localhost .
  • port тАФ , тАФ 3306 .
  • socketPath тАФ Unix .
  • debug тАФ , .
  • trace тАФ , .
  • ssl тАФ SSL- .

тЦН SELECT


SQL- . query , . тАФ , . . :

 connection.query('SELECT * FROM todos', (error, todos, fields) => { if (error) {   console.error('An error occurred while executing the query')   throw error } console.log(todos) }) 

, :

 const id = 223 connection.query('SELECT * FROM todos WHERE id = ?', [id], (error, todos, fields) => { if (error) {   console.error('An error occurred while executing the query')   throw error } console.log(todos) }) 

, , :

 const id = 223 const author = 'Flavio' connection.query('SELECT * FROM todos WHERE id = ? AND author = ?', [id, author], (error, todos, fields) => { if (error) {   console.error('An error occurred while executing the query')   throw error } console.log(todos) }) 

тЦН INSERT


INSERT . , :

 const todo = { thing: 'Buy the milk' author: 'Flavio' } connection.query('INSERT INTO todos SET ?', todo, (error, results, fields) => { if (error) {   console.error('An error occurred while executing the query')   throw error } }) 

, , auto_increment , results.insertId :

 const todo = { thing: 'Buy the milk' author: 'Flavio' } connection.query('INSERT INTO todos SET ?', todo, (error, results, fields) => { if (error) {   console.error('An error occurred while executing the query')   throw error }} const id = results.resultId console.log(id) ) 

тЦН


тАФ end() :

 connection.end() 

.

-


Node.js -.

Node.js . , -, NODE_ENV :

 NODE_ENV=production 

. Linux, , :

 export NODE_ENV=production 

, , .bash_profile ( Bash), .

, :

 NODE_ENV=production node app.js 

Node.js. NODE_ENV production :

  • .
  • .

, Pug тАФ , Express, , NODE_ENV production . Express, , . - . .

Express . , , NODE_ENV :

 app.configure('development', () => { //... }) app.configure('production', () => { //... }) app.configure('production', 'staging', () => { //... }) 

, :

 app.configure('development', () => { app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }) app.configure('production', () => { app.use(express.errorHandler()) }) 

тЦН


, , Node.js , . , , , Node.js, - , Node.js.

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! , Node.js, , .

Source: https://habr.com/ru/post/hi425667/


All Articles