NodeJS: рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд



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

рд▓реЗрдХреНрдЪрд░рд░ - рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдХреЛрд░рдЬрд╝рд┐рдХреЛрд╡ , рдЖрдИрдПрдирдЬреА рдЧреНрд░реБрдк (рдиреАрджрд░рд▓реИрдВрдбреНрд╕) рдореЗрдВ рджреЗрд╡ рдЖрдИрдЯреА рдЗрдВрдЬреАрдирд┐рдпрд░ред






Node.js рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж


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

рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЙрджрд╛рд╣рд░рдг ( node server.js):

const http = require('http')
const hostname = '127.0.0.1'
const port = 3000
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hello World\n')
})
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`)
})

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, Node.js рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдиреЛрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:

  1. рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реАрдзреЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдиреЛрдб рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
  2. рд▓реЛрдбрд┐рдВрдЧ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЙрдордирдЬреЗрдПрд╕-рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреЛрдиреЛрдВ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  3. рдПрдХ рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ HTTP рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
  4. рдПрдкреАрдЖрдИ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЙрд▓рдмреИрдХ рдкреИрдЯрд░реНрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рджрд╛ рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИред
  5. ES2015 рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдорд░реНрдерд┐рдд рд╣реИред рд╡реИрд╕реЗ, рдпрд╣рд╛рдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╣рдореЗрд╢рд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдиреЛрдб рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬреЗрдПрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ ред рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЫреЛрдЯреЗ рдбреЗрдореЛ (VSCode + Chrome рдбреАрдмрдЧ) рдХреЛ рдпрд╛рдж рди рдХрд░реЗрдВред

рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рднреНрд░рдордг


Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо 2009 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореБрдЦреНрдп рдбреЗрд╡рд▓рдкрд░ рдФрд░ рдирд┐рд░реНрдорд╛рддрд╛ рд░рдпрд╛рди рдбрд╛рд╣рд▓ рдереЗред рдЙрдирдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз I / O (рдЗрдирдкреБрдЯ-рдЖрдЙрдЯрдкреБрдЯ) рдмрдирд╛рдирд╛ рдерд╛ред рдЙрд╕ рд╕рдордп, рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рдЖрдо рдирд╣реАрдВ рдереЗ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ред

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



рд╕рдВрд░рдЪрдирд╛


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреБрд╕реНрддрдХрд╛рд▓рдп C ++ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд╡рдпрдВ рдЧрд┐рдЯрд╣рдм рдкрд░ рд╕реНрдерд┐рдд рд╣реИ , рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЙрддреНрд╕реБрдХ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕рдХреЗ рдЕрдзреНрдпрдпрди рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рджреЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ))ред

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

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

рдпрд╣ рдореБрдЦреНрдп рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднреА рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ Node.js рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

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

рд╡реИрд╕реЗ, рдпрд╣рд╛рдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реЗрдмрд┐рдирд╛рд░ рдореЗрдВ рдереА))ред рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗред

рдиреЛрдб рдорд╛рдирдХ рд╡рд┐рддрд░рдг рдореЙрдбреНрдпреВрд▓




рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рдирдХ рдиреЛрдб рд╡рд┐рддрд░рдг рдореЗрдВ рдХреМрди рд╕реЗ рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ? рдпрд╣реА рд╣реИ, рд╣рдо рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЙрдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ 50 рд╣реИрдВ, рдЪрд▓реЛ рдореБрдЦреНрдп рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВред рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ 5 рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

1. рдореБрдЦреНрдп (рд╕рд╛рдзрд╛рд░рдг рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП):

  • FS;
  • рдЯрд╛рдЗрдорд░;
  • рдзрд╛рд░рд╛рдПрдБ (рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред

2. рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ:

  • рдкрде (рдкрде рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП);
  • util;
  • zlib (рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдЦреЛрд▓рдирд╛);
  • рдХреНрд░рд┐рдкреНрдЯреЛ (рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП)ред

3. рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ (рд╕рдм рдХреБрдЫ рдмрд╣реБрд╕рдВрд╕реНрдХреГрддрд┐ рдФрд░ рд╕рдорд╛рдирддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд):

  • рдЪрд╛рдЗрд▓реНрдб_рдкреНрд░реЛрд╕реЗрд╕ (рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдирджрд╛рд░ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ);
  • рдХреНрд▓рд╕реНрдЯрд░ (рдкрд╣рд▓реЗ рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдХреЛрд░ рдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ);
  • рдХрд╛рд░реНрдпрдХрд░реНрддрд╛_ рдзрд╛рдЧреЗ (рдзрд╛рдЧреЗ рдпрд╛ рдзрд╛рдЧреЗ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ, рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрдврд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ)ред

4. рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓):

  • http (s);
  • рд╢реБрджреНрдз;
  • DNSред

5. рд╕рд┐рд╕реНрдЯрдо (рдХреНрд░рдорд╢рдГ, рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рд╣рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓):

  • рдУрдПрд╕
  • v8;
  • async_hooks;
  • perf_hooks;
  • trace_events

рдФрд░ рдХреНрдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП:

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

рдХреЙрд▓рдмреИрдХ


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

const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hello World\n')
})
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`)
})

рдиреЛрдб рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЙрд▓рдмреИрдХ рдХреЛ "рддреНрд░реБрдЯрд┐" рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИ:

fs.readFile('/etc/passwd', (err, data) => {
if (err) throw err
console.log(data)
})

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

fs.readdir(source, function (err, files) {
if (err) {
console.log('Error finding files: ' + err)
} else {
files.forEach(function (filename, fileIndex) {
console.log(filename)
gm(source + filename).size(function (err, values) {
if (err) {
console.log('Error identifying file size: ' + err)
} else {
console.log(filename + ' : ' + values)
aspect = (values.width / values.height)
widths.forEach(function (width, widthIndex) {
height = Math.round(width / aspect)
console.log('resizing ' + filename + 'to ' + height + 'x' + height)
this.resize(width, height).write(dest + 'w' + width + '_' + filename, function(err) {
if (err) console.log('Error writing file: ' + err)
})
}.bind(this))
}
})
})
}
})

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

const http = require('http')
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hello World\n')
})

рд╕реНрдерд╛рдиреАрдп HTML рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП:

const fs = require('fs')
fs.readFile('./index.html', (err, text) => {
console.log(text)
})

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

fs.access('/etc/passwd', fs.constants.R_OK, (err) => {
console.log(err ? 'no access!' : 'read')
})

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

util.promisify()
fs.promises.*

рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░:

http.request('https://example.com', (error, response, body) => {
...
})

рдиреЛрдб рдХреНрдпреВ рдПрдВрдб рдП


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

import express from "express";
const app = express();
const port = 3000;
app.get("/", (req, res) => {
res.send("Hello World!");
});
app.listen(port, () => {
console.log(`Example app listening
});



рдЦреИрд░, рдЕрдм рдЖрдк рдПрдХреНрд╕рдкреНрд░реЗрд╕-рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :

  • рдЬреЗрдб, рдХреБрдХреА-рд╕рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;
  • рдПрдХ рднреЛрд▓реА рд▓реЙрдЧрд┐рди рд▓реЙрдЧрдЖрдЙрдЯ рдХрд░рдирд╛ред

рдпрд╛ рдмрд╕ рдпрд╣ рджреЗрдЦреЗрдВ рдХрд┐ рд╢рд┐рдХреНрд╖рдХ рдиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ ред

рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЕрдВрдд рдореЗрдВ - рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдХреА рдПрдХ рдЬреЛрдбрд╝реА:


рдФрд░ рдЖрдкрдХреЛ рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВ ред

All Articles