Deno рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ Node.js рдХреА рдЬрдЧрд╣ рд▓реЗрдЧрд╛?



рдЕрдЪреНрдЫрд╛ рджрд┐рдиред рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рд▓реЗрдЦ тАЬDeno рдмрдирд╛рдотАЭ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдБ Node.js - рдпрд╣рд╛рдБ рд▓реБрдИ рдкреЗрдЯреНрд░рд┐рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд╣реИрдВ тАЭ ред

рдХреНрдпрд╛ Deno рдирдпрд╛ Node.js рд╣реИ? рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк? рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдбреЗрдиреЛ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕


Deno рдФрд░ Node.js рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдХрд╛рдо рд╣реИрдВ - рд░реЗрдпрд╛рди рдбрд╛рд╣рд▓ред

рджрд╛рд╣рд▓ 2009 рд╕реЗ Node.js рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рд╛рд▓ рдмрд╛рдж рдЯреАрдо рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред 2018 рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рджреА, "10 рдЪреАрдЬреЗрдВ I рд░реАрдЧреНрд░реЗрдЯ рдЕрдмрд╛рдЙрдЯ рдиреЛрдб.рдЬреЗрдПрд╕" рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ, рдбрд╛рд╣рд▓ рдиреЗ рдбреЗрдиреЛ - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ "рдЗрдВрдЬрди" рдкреЗрд╢ рдХрд┐рдпрд╛ред

рдордЬреЗрджрд╛рд░ рддрдереНрдп: " рдбреЗрдиреЛ " "рдиреЛрдб" рдХрд╛ рдПрдХ рд╡рд┐рдкрд░реНрдпрдп рд╣реИред

рдХреНрдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдбрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдбреЗрдиреЛ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдиреЛрдб.рдЬреЗрдПрд╕ рдХреА рдЬрдЧрд╣ рд▓реЗрдЧрд╛?

рдбрд╛рд╣рд▓ рдЦреБрдж рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдирд╣реАрдВред рд╡реАрдбрд┐рдпреЛ рдХрд╛



рд▓рд┐рдВрдХ

рдЬреИрд╕рд╛ рдХрд┐ рдбрд╛рд╣рд▓ рдиреЗ рдЕрдкрдиреЗ рднрд╛рд╖рдг рдореЗрдВ рдХрд╣рд╛ рд╣реИ, рдбреЗрдирд┐рдпреЛ рдЕрднреА рднреА рдкреВрд░реНрдгрддрд╛ (рд╕реНрдерд┐рд░рддрд╛) рдореЗрдВ рдиреЛрдбреНрд╕.рдЬреЗрдПрд╕ рд╕реЗ рдиреАрдЪ рд╣реИред

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

рдбреЗрдиреЛ рдФрд░ рдиреЛрдб.рдЬреЗрдПрд╕: рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдг


Node.js C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ JS рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП V8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред V8 рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Google Chrome рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ JS рдХреЛрдб рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЬрд▓реНрджреА рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, Microsoft Edge рд╕рд╣рд┐рдд рд▓рдЧрднрдЧ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдиреЗ V8 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

рдбреЗрдиреЛ рднреА V8 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди C ++ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ Rust рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рдЬрд┐рд╕рдХрд╛ рд▓рдХреНрд╖реНрдп рди рдХреЗрд╡рд▓ C ++ рд╕реЗ рдиреАрдЪ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рднреА рд╣реИ: рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдПрд░рд░ рдпрд╛ рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рдХреЛ рдЦрддреНрдо рдХрд░рдирд╛ред

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

Deno рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреВрдЫрдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг Deno рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдирд┐рдореНрди TS рдХреЛрдб рд╣реИ:

import { serve } from 'https://deno.land/std@0.50.0/http/server.ts'

const s = serve({ port: 8000 })

for await (const req of s) {
	req.respond({ body: 'Hello World\n'})
}

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

deno run app.ts

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪреВрдВрдХрд┐ рдбреЗрдиреЛ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ:



рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

deno run --allow-net app.ts

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

рдЕрд▓рд╡рд┐рджрд╛ рдПрдирдкреАрдПрдо, рд╣реИрд▓реЛ рдИрдПрд╕ 6 рдЖрдпрд╛рдд


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

Deno NPM рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ URL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

import { serve } from 'https://deno.land/std@0.50.0/http/server.ts'

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкрд╣рд▓реЗ рд░рди рдФрд░ рдХреИрд╢реНрдб рдкрд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:



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

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдмрд╛рд╣рд░ рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ


рд╡рд┐рдВрдбреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЗрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред

рдРрд╕рд╛ рд╣реА рдПрдХ рдлреАрдЪрд░ рд╣реИред Node.js рдореЗрдВ Fecth рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбреЗрдиреЛ рдореЗрдВ рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдбреИрдиреЛ рдХреА рд╡рд┐рдВрдбреЛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ ред

рдирд┐рдореНрди рдХреЛрдб рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ Deno рджреЛрдиреЛрдВ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

fetch('https://jsonplaceholder.typicode.com/todos/1')
	.then(response => response.json)
	.then(data => console.log(data))

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ


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

рдЖрдк рдЗрд╕реЗ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдХрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЛ .ts рдпрд╛ .js рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬ рдХрд░, рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдХрд░ deno runред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдн рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд░реНрдерди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ Node.js. рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

All Articles