рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж,
Node.js рдЕрднреА рднреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрдХрдиреАрдХ рдмрдиреА рд╣реБрдИ рд╣реИ, рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЕрдиреНрдп рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╕реНрдЯреИрдХ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдмрд╛рдзрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХреА рдЧрдИ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдХрд╛рд░рдг рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдиреЛрдб рдХреЗ рдкрд╛рд╕ рд╕реНрд╡рдпрдВ рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдерд┐рд░ рдлрд╛рдЗрд▓реЗрдВ рджреЗрдВ, рд╕рддреНрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ, рдХрдИ рдереНрд░реЗрдбреНрд╕ рдЪрд▓рд╛рдПрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪреЗрдВ, рдореЗрдореЛрд░реА рдореЗрдВ рдХреИрд╢реЗ рдбреЗрдЯрд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдореЛрд╣рд┐рдд рдХрд░реЗрдВ, рд▓реЙрдЧ рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдШреБрдорд╛рдПрдВ, рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдПрдкреАрдЖрдИ рдмрдирд╛рдПрдВ, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдПрдВ , URL-рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдЗрд╕ рд╕рдм рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдШрдЯрдирд╛рдУрдВ рдХреА рддреНрд╡рд░рд┐рдд рдбрд┐рд▓реАрд╡рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рдФрд░ рдХрдИ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдореЙрдбреНрдпреВрд▓) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд╡реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдордиреЗ рд▓рдЧрднрдЧ рд╣рд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЗрд╕ рд╕рднреА рд╕реЗрдЯ рдХреЛ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреЛрдб рдЬреБрдЯрдирд╛ рдмрдврд╝рд╛рдПрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЛ рдореВрд▓ рдЕрдЦрдВрдб рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдПрдХрддреНрд░рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рдмрдирд╛рдПрдВред ред
рдЗрдореНрдкреНрд░реЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкрд╣рд▓реЗ рд╣реА
рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд░реВрдк рдореЗрдВ
рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рддреЗрдЬреА рд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рджрд░реНрдЬрди рд▓рд╛рдЗрд╡ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрдВрдкреНрд░реЗрд╢рди рдПрдХ рдЕрдиреНрдп рд╡реНрдпрд╛рдкрдХ рдордВрдЪ рд╕реЗ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЗрдВрдкреНрд░реЗрд╢рдирд╡рд╛рдж рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╡рд╛рдж рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрд╣ рдПрдХ рд╕рдордЧреНрд░, рд╕реБрд╡рд┐рдЪрд╛рд░рд┐рдд рд╕реМрдВрджрд░реНрдп рдмреЛрдз рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдЕрдЪрд╛рдирдХ рдкреНрд░рдХреЛрдк рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдХреЛрдб рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдЗрдВрдкреНрд░реЗрд╕ рдХреА рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред
рдХреБрдЫ рдХреЛрдб рдореЗрдЯреНрд░рд┐рдХреНрд╕
- рдЗрдореНрдкреНрд░реЗрд╕ рдХреЛрд░ рдХрд╛ рдЖрдХрд╛рд░ (рдЕрдзрд┐рдХрддрдо рдХреЛрдб рдЬреБрдЯрдирд╛) /lib/impress.js - 44Kb
- рд╕рдВрдкреВрд░реНрдг рдЗрдореНрдкреНрд░реЗрд╕ рдХреЛрдб рдХрд╛ рдЖрдХрд╛рд░ (рдЙрдЪреНрдЪ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ) / lib / * - 110Kb
- рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ (рд╡реИрдХрд▓реНрдкрд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде), рд╕рдм рдХреБрдЫ / node_modules 56MB рд╣реИ
- рдЗрдирдореЗрдВ рд╕реЗ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЬрд┐рдпреЛ-рд▓рд╛рдЗрдЯ рдореЙрдбреНрдпреВрд▓ 40Mb рд╣реИ
- рдХрд░реНрдиреЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдбрд┐рдВрдЧ рд╡рд┐рдзрд┐: рд╡рд┐рджреЗрд╢реА (рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИ - рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЗрдВрдкреНрд░реЗрд╢рди рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреИрдЯрд░реНрди ред рдЬреЗрдПрд╕ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ )ред
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрдпреБ : 3 prot рдорд╣реАрдиреЗ (рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдФрд░ рдорд╣реАрдирд╛, npm рдФрд░ github рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рдкрд╣рд▓реЗ)ред
- рд╡рд┐рдХрд╛рд╕ рдХреА рддреАрд╡реНрд░рддрд╛ : рдЗрд╕ рджреМрд░рд╛рди 47 рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рд╣рд░ 2-3 рджрд┐рди рдореЗрдВ рдХреБрдЫ рдЦрддреНрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- рдирд┐рд░реНрднрд░рддрд╛рдПрдБ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ): async , рдХреНрд▓рд╕реНрдЯрд░ , рд░рдВрдЧ , mkdirp , mongodb , mysql , memcached , nodemailer , geoip-lite , uglify-js , multiparty , iconv-lite ред
рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
- рдорд▓реНрдЯреА-рдкреЗрдЬ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛, рдЕрд░реНрдерд╛рдд, рд╕рд░реНрд╡рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди (рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд) рдФрд░ рдкреЗрдЬ рд░реАрд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рдеред
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЗ рдмреАрдЪ AJAX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, HTML рдпрд╛ JSON рдЕрдВрд╢реЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде, рдЙрдирд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдХреНрд░реАрди рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ-рдкреЗрдЬ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ред
- рд╣рд╛рдЗрдмреНрд░рд┐рдб рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдЬрд╣рд╛рдВ рдПрдХрд▓-рдкреГрд╖реНрда рдФрд░ рдмрд╣реБ-рдкреГрд╖реНрда рджреГрд╖реНрдЯрд┐рдХреЛрдг рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
- рдЪреМрд░рд╛рд╣реЗ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд┐рдХрд╛рд╕, рдЬрд┐рд╕рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдЖрдИрдУрдПрд╕, рдПрдВрдбреНрд░реЙрдЗрдб рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
- Cache.manifest рдХреЗ рд╕рд╛рде рдСрдлрд╝рд▓рд╛рдЗрди HTML5 рдПрдкреНрд▓рд┐рдХреЗрд╢рди, IndexedDB рдпрд╛ WebSQL рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдФрд░ рдСрдирд▓рд╛рдЗрди рдФрд░ рдСрдлрд▓рд╛рдЗрди, рдСрдлрд╝рд▓рд╛рдЗрди рджреЛрдиреЛрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдпрд╣ рдЗрдореНрдкреНрд░реЗрд╕ рдХрд╛ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рдмреЗрд╢рдХ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ atypical рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИред
- рдПрдХрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ (рдореБрдЦреМрдЯрд╛ рджреНрд╡рд╛рд░рд╛) рдХреЗ рд╕рд╛рде рдХрдИ рдбреЛрдореЗрди рдХреА рд╕реЗрд╡рд╛, рдЕрд░реНрдерд╛рддреНред рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдЬреЛ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдпрд╛ рдЙрди рдкрд░ (рджреЛрдиреЛрдВ рдПрдХ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░) рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред
- рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдФрд░ рдкреЛрд░реНрдЯ (рд░рд┐рд╡рд░реНрд╕-рдкреНрд░реЙрдХреНрд╕реА) рдХреЛ рдХреЙрд▓ рдпреВрдЖрд░рдПрд▓-рд░рд╛рдЗрдЯрд┐рдВрдЧ рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдлреЙрд░рд╡рд░реНрдб рдХрд░рдирд╛, JSON рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ config.js рдореЗрдВ URL рд░реВрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ рдкреИрдЯрд░реНрди рдФрд░ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЕрдЧреНрд░реЗрд╖рдг рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдореЗрдВ рдХреЙрд▓ рдХреЗ рднрд╛рдЧ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧреНрд░реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХрдИ рднрд╛рд╖рд╛рдУрдВ, рд╕рд░реНрд╡рд░реЛрдВ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╕реНрдЯреИрдХ рд╕реЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
- рд░реИрдо рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕реНрдЯреЗрдЯрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ , рд╕реНрдЯреИрдЯрд┐рдХ рдмреНрд░рд╛рдЙрдЬрд░ js-files рдХрд╛ рдорд┐рдирд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди , рдХрдВрдкреНрд░реЗрд╕рд┐рдмрд▓ рдлреЙрд░реНрдореЗрдЯ рдХреЗ рд▓рд┐рдП gzip рдХрдореНрдкреНрд░реЗрд╢рди рдФрд░ тАЬ if- рд╕рдВрд╢реЛрдзрд┐рдд-рдЪреВрдВрдХрд┐тАЭ рд╣реИрдбрд░ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рдкрд░ HTTP 304 (рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ) рдХреА рд╕рд╣реА рд╡рд╛рдкрд╕реАред
- рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдФрд░ MongoDB рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рджрд╛рддрд╛ рд╣реИред
- RAM рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕рддреНрд░реЛрдВ рдХреА рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╣реИ , рдЙрдиреНрд╣реЗрдВ MongoDB рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╕рддреНрд░реЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЧреИрд░-рдкреНрд░рдорд╛рдгрд┐рдд рд╕рддреНрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдВ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВред
- рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЖрдИрдкреАрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрди рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдХрдИ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП ZeroMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рд╕реНрдХреЗрд▓рд┐рдВрдЧ) рдХреА рдпреЛрдЬрдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрд╕реЗрдЬрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП gluing рд╕рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рддрд░реАрдХреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди: "рдЖрдИрдкреА рдЪрд┐рдкрдЪрд┐рдкрд╛" (рдЖрдИрдкреА рджреНрд╡рд╛рд░рд╛ gluing) рдпрд╛ "рдХреБрдХреА рдЪрд┐рдкрдЪрд┐рдкрд╛" (рдХреБрдХреА рджреНрд╡рд╛рд░рд╛ gluing, рдПрдХ рдмрд╛рд╣рд░реА рдмреИрд▓реЗрдВрд╕рд░ рдФрд░ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрд╕рдВрдХреЗрддрди рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рдПрдХ рд╣реА рдЖрдИрдкреА рд╕реЗ рдпрд╛ рдПрдХ рд╣реА рдХреБрдХреА рдХреЗ рд╕рд╛рде рд╕рднреА рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ (рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рдж) рдХреЛ рдЙрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд░реВрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рд╕рддреНрд░ (рд░рд╛рдЬреНрдп) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
- рд╣рд░ рджрд┐рди рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдкреБрд░рд╛рдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд▓реЙрдЧрд┐рдВрдЧ (рд╕рдВрдЧреНрд░рд╣реАрдд рдЗрддрд┐рд╣рд╛рд╕ рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ)ред
- CMS рдкрд░ рдХрд╛рдо, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдВрдкреНрд░реЗрд╕ рдХреЛрд░ рдореЗрдВ рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдФрд░ рдЬрд▓реНрдж рд╣реА рдкреЗрдЬреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред
рдЦреИрд░, рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
- рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо-рдЖрдзрд╛рд░рд┐рдд URL рд░реВрдЯрд┐рдВрдЧ (URL рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдореИрдк рдХрд░рдирд╛)ред
- рдХреИрд╢рд┐рдВрдЧ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд░реИрдо рдЯреЗрдореНрдкреНрд▓реЗрдЯред
- рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░рд┐рдмреВрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдореЙрдирд┐рдЯрд░ рдХрд░рддреА рд╣реИред
- рдХрдИ рд▓реЙрдиреНрдЪ рд░рдгрдиреАрддрд┐рдпрд╛рдБ: рдПрдХрд╛рдзрд┐рдХ, рдПрдХрд▓, рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдкрд╛рдд, рдЪрд┐рдкрдЪрд┐рдкрд╛ред
- рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреВрд░реНрдг рд░реАрдмреВрдЯ рдХреЗ рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдкреНрд░рдХреНрд░рд┐рдпрд╛ config.js рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреА рд╣реИ)ред
- рдПрд╕рдПрд╕рдИ (рд╕рд░реНрд╡рд░-рд╕реЗрдВрдЯреЗрдб рдЗрд╡реЗрдВрдЯреНрд╕) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрд╡рд░ (рдкреАрдпреВрдПрд╕рдПрдЪ рд╢реИрд▓реА рдореЗрдВ) рд╕реЗ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдирд┐рд░рдВрддрд░ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдкреВрд░реНрдг рд╢реИрд▓реА рдореЗрдВ)ред
MySQL рдРрдб-рдСрди рдбреНрд░рд╛рдЗрд╡рд░ рдРрдб-рдЗрди:
- рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХреЗ рддрд░реАрдХреЗ: queryRow, queryValue, queryArray, queryHash, queryKeyValue, countред рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг: https://github.com/tshemsedinov/impress/wiki/MySQL-Data-Access-Methods
- рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрд╡рд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдХреЗ рддрд░реАрдХреЗ (рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛): рдкреНрд░рд╛рдердорд┐рдХ, рд╡рд┐рджреЗрд╢реА, рдмрд╛рдзрд╛рдПрдВ, рдХреНрд╖реЗрддреНрд░, рдбреЗрдЯрд╛рдмреЗрд╕, рдЯреЗрдмрд▓, рдЯреЗрдмрд▓рдЗрдирдлреЛ, рдЗрдВрдбреЗрдХреНрд╕, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ, рдЧреНрд▓реЛрдмрд▓ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕, рдЧреНрд▓реЛрдмрд▓рд╕реНрдЯреИрдЯрд╕, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг: https://github.com/tshemsedinov/impress/wiki/MySQL-Introspection-Methods
- SQL рдХреНрд╡реЗрд░реА рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ: рдЬрд╣рд╛рдВ, рд╕реЗрд▓реЗрдХреНрдЯ, рдЕрдкрдбреЗрдЯ, рдЗрдВрд╕рд░реНрдЯ, рдЕрдкрдЧреНрд░реЗрдб, рдбрд┐рд▓реАрдЯред рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг: https://github.com/tshemsedinov/impress/wiki/MySQL-Query-Generator-Methods
JSON рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдзрд╛рддреБ рднрд╛рд╖рд╛ рднреА рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреА рд╣реИред / рдиреЛрдб_рдореЙрдбрд▓ / рдЗрдВрдкреНрд░реЗрд╢рди / рд╕реНрдХреАрдорд╛ / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var schemaCore = require('./schemas/impress.core.schema.js'); var scriptCore = db.schema.mysql.generateScript(schemaCore, true).script; console.log(scriptCore);
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдордЪрд╛рди рд░реВрдкреЛрдВ, рдЧреНрд░рд┐рдб рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИред
рдЙрджрд╛рд╣рд░рдг
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрдореНрдкреНрд░реЗрд╕ рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред NPM рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (
npm рдЗрдВрд╕реНрдЯреЙрд▓ рдЗрдВрдкреНрд░реЗрд╢рди) рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдкрд░ / рдиреЛрдб_рдореЙрдбрд▓ / рдЗрдВрдкреНрд░реЗрд╢рди / рдЙрджрд╛рд╣рд░рдг / copyContentToProjectFolder рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдХреЙрдкреА рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЙрдиреНрдЪрд┐рдВрдЧ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП MongoDB рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ (рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рддреНрд░ рднрдВрдбрд╛рд░рдг рдХреЗ рдЕрдиреНрдп рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред рд▓реЗрдХрд┐рди рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд┐рдирд╛ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ MongoDB рдЕрднреА рднреА рд╡рд╣рд╛рдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ config ,js, "" рдбреЗрдЯрд╛рдмреЗрд╕.рдореНрдкреНрд░реЗрд╕ ", рдХреЛ рдПрдХ рд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореЗрдВ" рд╕рддреНрд░.рдкрд░реНрд╕рд┐рд╕реНрдЯ "рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░" plugins.require "рдЦрдВрдб рдореЗрдВ" db "," db.mongodb "," impress.security.mongodb "ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд░рди рдХрд░рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдПрдВ:
рдиреЛрдб setup.js рдФрд░ рдлрд┐рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ:
рдиреЛрдб server.jsAPI (RPC): STATEful рдФрд░ STATEless
рдПрдХ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрдореНрдкреНрд░реЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣ рд╣реИ STATEless рд╕рд┐рджреНрдзрд╛рдВрдд (рдпрд╛рдиреА REST рд╕рд░реНрд╡рд░) рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк STATEful рд╕рд┐рджреНрдзрд╛рдВрдд рджреЛрдиреЛрдВ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдмрдирд╛рдирд╛ред рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ REST рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЕрдиреБрд░реЛрдз / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝реА рдХреЗ рдмреАрдЪ рди рддреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рди рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрд░рдкреАрд╕реА рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдореЗрдВ рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдкрдиреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЗрди рдореЙрдбрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдХреА рдШрдЯрдирд╛рдУрдВ рдФрд░ рдХреЙрд▓ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдиреЛрдб рдЖрдкрдХреЛ рддрд╛рд░ рдХреЗ рджреЛ рд╕рд┐рд░реЛрдВ рдкрд░ рдореЙрдбрд▓ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдФрд░ AJAX / JSON рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡реЗрджрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред REST рднрд╛рд░реА рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ (рдЬреИрд╕реЗ рдЕрдкрд╛рдЪреЗ рдФрд░ IIS) рдХреЗ рдкрд╛рд╖рд╛рдг рдпреБрдЧ рд╕реЗ рдПрдХ рдиреЛрдб рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдЬреЛ рд╣рд░ рдмрд╛рд░ рдмрд╛рд╣реНрдп (рдЙрдирдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ) рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рд╡реЗ рд╕реАрдЬреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрдиреБрд░реЛрдз рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рдереЗред рдРрд╕рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдЕрдкрдиреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХреБрдЫ рдкрдврд╝реЗрдВ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ), рдЖрджрд┐ред рдФрд░ рдпрд╣ рд╕рдм рдХреЗрд╡рд▓ рдХреБрдЫ рдорд┐рд▓рд┐рд╕реЗрдХрдВрдб рдореЗрдВ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдзрд╛рд░ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╡реЗрдм рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ RPC (COM, DCOM, Corba ...) рдХреЗ рд░реВрдк рдореЗрдВ STATEful API рдХреЛ рдЕрдкрдирд╛рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП REST рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХрдореА рдереАред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдиреЛрдб рдХреА рдкреВрдЬрд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЦреБрд╢ рдерд╛ред рдЕрдм рдлрд┐рд░ рд╕реЗ, рдЖрдк рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдк рд░реИрдо рдореЗрдВ рд╡рдЬрдирджрд╛рд░ рд╕рддреНрд░реЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреВрд░реА рд╣реЛрдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдордмрджреНрдз / рдбрд┐рд╕реЗрд░рд▓рд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдЬрди рдерд╛ рдХрд┐ REST рдЕрддреАрдд рдХреА рдЪреАрдЬрд╝реЛрдВ рдХреА рддрд░рд╣ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рд╡реНрдпреВрд╕реНрдЯреЗрдЯ рдФрд░ рд╕реНрдЯреЗрдЯ рд╕рд░реНрд╡рд░ рдЬреИрд╕реА рдмреИрд╕рд╛рдЦреАред рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ STATEful API рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЖрд╢реАрд░реНрд╡рд╛рдж рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд╢рдХреНрддрд┐рдорд╛рди рджреНрд╡рд╛рд░рд╛ рд╣рд░ рдЬреАрд╡рд┐рдд рдкреНрд░рд╛рдгреА рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдиреЛрдб рдЬрд╛рдирддрд╛ рд╣реИред
рдПрдХ рдирдпрд╛ рдПрдкреАрдЖрдИ рдпреВрдЖрд░рдПрд▓ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдЬрд░реВрд░рдд рд╣реИ:
1. рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ /api/myAPI/getSomething.json/
2. рдкреЛрд╕реНрдЯред Js рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд╣рд╛рдВ рд░рдЦреЗрдВ рдФрд░ рдЙрд╕рдореЗрдВ рд▓рд┐рдЦреЗрдВ:
module.exports = function(req, res, callback) { db.impress.collectionName.find({ fieldName: req.post.fieldValue }).toArray(function(err, nodes) { res.context.data = nodes; callback(); }); }
3. рдореЗрдВ / рдПрдкреАрдЖрдИ / myAPI рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, access.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕рдореЗрдВ рд▓рд┐рдЦреЗрдВ:
module.exports = { guests: false, logged: true, http: true, https: true }
рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, https рдХреЗ рд▓рд┐рдП рд╣рдо рдмрд╕ access.js рдореЗрдВ config.js рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП http рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдореЗрд░рд┐рдВрдЧ рд╕рд░реНрд╡рд░ рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ рдПрдХ рдФрд░ рдлреЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ рдФрд░ рдлрд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦреЗрдВред рдкрд╣рд▓реА рдмрд╛рд░ рдХреЛрдб рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рд╕реНрдХреНрд░реВ рдкрд░ рдлрд╛рдЗрд▓ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирдпрд╛ рдХреЛрдб рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдмреИрдарддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдбреЗрдореЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╕реНрдХреНрд░реАрди
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдРрд╕реА рд╕реНрдХреНрд░реАрди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХрд░рдг рдлреЙрд░реНрдо рд╣реИ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм MongoDB рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рд╕рд╛рде рд╣реА рдЦрд╛рддреЛрдВ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рддреНрд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (рдЦрд╛рддрд╛ рдмрдирд╛рдПрдВ, рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВ, рд╕рд╛рдЗрди рдЖрдЙрдЯ рдХрд░реЗрдВ)ред
рдмрд╛рдПрдВ рдХреЙрд▓рдо рдореЗрдВ, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрдЯрди рдХреЛ рдлрд╛рдпрд░рдмрдЧ рдЪрд╛рд▓реВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдЖрдзрд╛рд░рд┐рдд рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЙрджрд╛рд╣рд░рдг
MySQL рдФрд░ MongoDB рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣рд╛рдБ рдЙрд╕рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ:
рдЧреАрдердм рдкрд░:
https://github.com/tshemsedinov/impressNpm рдореЗрдВ:
https://npmjs.org/package/impress