рд╣рдо Node.js рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди (рдФрд░ рд╕реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди) рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ

рдХрд▓ рд╕реЗ, рд╕рдЬреНрдЬрдиреЛрдВ, рдЖрдк рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

//    JavaScript (UTF-8)  UTF-16 function TEXT(text){ return new Buffer(text, 'ucs2').toString('binary'); } var FFI = require('node-ffi'); //   user32.dll var user32 = new FFI.Library('user32', { 'MessageBoxW': [ 'int32', [ 'int32', 'string', 'string', 'int32' ] ] }); //   var OK_or_Cancel = user32.MessageBoxW( 0, TEXT(', !'), TEXT(' '), 1 ); 

рдФрд░ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ - рд╡рд┐рдВрдбреЛрдЬ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ред

рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдиреЛрдб-рдПрдлрдПрдлрдЖрдИ рдореЙрдбреНрдпреВрд▓ (рдЙрд╕ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдмреЗрдлреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЖрд╡рд░рдг , рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдо рд╕реЗ рдХрдо рдЖрда рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рдХрд▓ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ Windows API UTF-16 рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ , рдФрд░ Node.js UTF-8 рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ ред рдЗрд╕ рдЕрдВрддрд░ рдХрд╛ рдЕрд╡рддрд╛рд░, рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, TEXT ( ... ) рдХрдирд╡рд░реНрдЯрд░ MSDN рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдЙрд╕реА рдирд╛рдо рдХреЗ рдореИрдХреНрд░реЛ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ ред

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

Node.js рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЗрд╕ рдХрджрдо рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рднреА рдХрдо рд╕рдордп рдкрд╣рд▓реЗ рдХреА рдЧрдИ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ - резрем рджрд┐рд╕рдВрдмрд░, реирежрезрез:
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, Node.js рдХрд╛ рднрд╡рд┐рд╖реНрдп рдЕрднреА рднреА рдХрд╛рдлреА рдЙрдЬреНрдЬреНрд╡рд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ ┬╜1 future рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЗрдВрдЬрди рди рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд, рдореИрдХ рдХреЗ рддрд╣рдд рдФрд░ рд╕реЛрд▓реЗрд░рдХрд╛ рдХреЗ рддрд╣рдд, рдмрд▓реНрдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рднреА рдореМрдЬреВрдж рд╣реИред

рд╣рдореЗрдВ рдЙрд╕ рд╕рдордп рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд╣рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдзрдХреНрдХрд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬрдм Node.js рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╡рд┐рдВрдбреЛрдЬ рд╣реИред рдореЗрд░реЗ рдЕрдиреБрдорд╛рди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдЕрдХреЗрд▓реЗ Node.js рдЗрдВрдЬрди рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ; рдХрдо рд╕реЗ рдХрдо рдпрд╣ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
  • Npm рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рд╕реБрдЪрд╛рд░реВ рд╕рдВрдЪрд╛рд▓рдиред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП win32 рдФрд░ win64 рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡ рд╕рдВрдХрд▓рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛: рдЖрдк рдЗрд╕ рддрдереНрдп рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рдПрдХреНрд╕рдкреНрд░реЗрд╕)ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдирдкреАрдкреА рд╕реНрдерд╛рдкрд┐рдд рдЬрд╝рд┐рдк рдХрдорд╛рдВрдб рдХреЛ рдЯрд╛рд░рдмреЙрд▓ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдкрд░ рдареЛрдХрд░ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЗрдЦрдХ npm / lib / utils / tar.js рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рдереЗред)
  • рдПрдХ рдордирдорд╛рдирд╛ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред (рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдиреЛрдб-рдПрдлрдПрдлрдЖрдИ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдВрднрд╡рддрдГ, рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред) рдХреЗрд╡рд▓ рдпрд╣рд╛рдВ рд╕реЗ рдЬреАрдпреВрдЖрдИ рдмрдирд╛рдиреЗ рдХрд╛ рдорд╛рд░реНрдЧ рдЦрд┐рдВрдЪрд╛рд╡ рд╣реЛрдЧрд╛ред
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ (рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдХреЗ рдмрдЬрд╛рдп) рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрджреНрднрд╡ред ( рдиреЛрдб- sqlite3 рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдВрднрд╡рддрдГ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред)
рдФрд░ рдПрдХ рдорд╣реАрдирд╛ рднреА рдирд╣реАрдВ рдмреАрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рддреАрди рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реЗ рджреВрд╕рд░реЗ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдерд╛ред рдХрд┐рд╕реА рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд▓рд┐рдкрд┐рдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд╕рд┐рд╕реНрдЯрдо API рдХреА рдкреВрд░реА рд╢рдХреНрддрд┐ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдИ, рдФрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЛ рдЙрдирдХреЗ рд╕рд╛рде рдЦреАрдВрдЪреЗ рдмрд┐рдирд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрди рддреАрди рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ (рдЬреЛ рдореЗрд░реЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдерд╛) рдЙрд╕ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдкрдирд╛ рджреЗрдЦрд╛ рдерд╛: рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдЕрднреА рднреА рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢рд╛рд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдХрд╛рд░рдг рдорд┐рд▓рд╛ рдЬрдм рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдиреЛрдб-рдПрдлрдПрдлрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрд╡рд╕рд░ рдХреА рдХрдореА рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред рдЙрдирдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЖрдзрд╛ рджрд░реНрдЬрди рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рд╕рдорд╛рди рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
 compiled/darwin/x64/ffi_bindings.node compiled/linux/ia32/ffi_bindings.node compiled/linux/x64/ffi_bindings.node compiled/sunos/ia32/ffi_bindings.node compiled/win32/ia32/ffi_bindings.node 
рдФрд░ lib / bindings.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЛрдб-ffi рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдЪрд╛рд░реЛрдВ рдУрд░ рджреЗрдЦрддреА рд╣реИ, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рд╕реЗ рдорд┐рд▓реА рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рдЗрдирд░реА рдХреЛрдб рдЙрдард╛ рд░рд╣реА рд╣реИ:
 var join = require('path').join , bindings = 'ffi_bindings.node' function requireTry () { var i = 0 , l = arguments.length , n for (; i<l; i++) { n = arguments[i] try { var b = require(n) b.path = n return b } catch (e) { if (!/not find/i.test(e.message)) { throw e } } } throw new Error('Could not load the bindings file. Tried:\n' + [].slice.call(arguments).map(function (a) { return ' - ' + a }).join('\n')) } module.exports = requireTry( // Production "Release" buildtype binary join(__dirname, '..', 'compiled', process.platform, process.arch, bindings) // Release files, but manually compiled , join(__dirname, '..', 'out', 'Release', bindings) // Unix , join(__dirname, '..', 'Release', bindings) // Windows // Debug files, for development , join(__dirname, '..', 'out', 'Debug', bindings) // Unix , join(__dirname, '..', 'Debug', bindings) // Windows ) 

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдХреЛрдИ рдмреБрд░рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; "рд╕рдВрдХрд▓рд┐рдд" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдмрд╕ comp700 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдбрд┐рд╕реНрдХ рдЖрдХрд╛рд░ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЧрддрд┐ рдХреЗ рд╕рд╛рде, рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред

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

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


All Articles