рдкреНрд░рднрд╛рд╡: Node.js рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдЙрджреНрджреЗрд╢реАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡рд░

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

рдХреБрдЫ рдХреЛрдб рдореЗрдЯреНрд░рд┐рдХреНрд╕



рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ



рдЦреИрд░, рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:

MySQL рдРрдб-рдСрди рдбреНрд░рд╛рдЗрд╡рд░ рдРрдб-рдЗрди:

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.js

API (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/impress
Npm рдореЗрдВ: https://npmjs.org/package/impress

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


All Articles