SelsJS рдкрд░ рдПрдХ рд╕рд░рд▓ рдмреНрд▓реЙрдЧ рд▓реЗрдЦрди: рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╡реНрдпрд╡рд╣рд╛рд░ (рднрд╛рдЧ 1)

рд╕рд╛рд░



рдпрд╣ рд▓реЗрдЦ NodeJS рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЙрдирдХреА рдпрд╛рддреНрд░рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ SailsJS рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдордВрдЪ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдПрдХ рд╕рд░рд▓ рдмреНрд▓реЙрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЗрд╕ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреМрд╢рд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИ - рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ NodeJS рдкрд░ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЖрдзрд╛рд░ рд╣реИред рд╕рд╛рдордЧреНрд░реА рдХреЗ рдПрдХ рдмреЗрд╣рддрд░ рдЖрддреНрдорд╕рд╛рдд рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╕рдордЭ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди NodeJS , рд╕рд╛рде рд╣реА рдХрдо рд╕реЗ рдХрдо MVC рдпреЛрдЬрдирд╛ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╡рд┐рдЪрд╛рд░ рдЬреЛ рдкрд╛рд▓ рдХрд╛ рдЖрдзрд╛рд░ рд╣реИред рд░реВрдкрд░реЗрдЦрд╛ рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкрд╛рд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЬрд╛рддрд┐рдпреЛрдВ рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рд▓реЗрдЦ рдЕрдиреБрднрд╡реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рдмрддрд╛рдПрдЧрд╛, рдФрд░ рдХреБрдЫ рддрдХрдиреАрдХ рдЕрдкреНрд░рднрд╛рд╡реА рд▓рдЧ рд╕рдХрддреА рд╣реИрдВред



рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдХреА рддреИрдпрд╛рд░реА



рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рдпрдВ SJJS рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА NodeJS рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рдУрдПрд╕ рдлреЗрдбреЛрд░рд╛ 20 рд╣реИ, рдЖрдкрдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕, рдЙрдмрдВрдЯреВ рдФрд░ рдЕрдиреНрдп рдУрдПрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдо рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, SailsJS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ

sudo npm install -g sails@beta
      
      





рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкрд╛рд▓ рдореЗрдВ рдпрд╣ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 sails new sails-blog --linker cd sails-blog/
      
      





рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ - рдкреИрд░рд╛рдореАрдЯрд░
 new
      
      



рдЯрд╛рдЗрдЯрд▓ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ
 --linker
      
      



рдпрд╣ рдЗрд╕рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлреНрд░рдВрдЯрдПрдВрдб рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ: js, css, images, рдФрд░ рдЗрд╕реА рддрд░рд╣, рд╕рд╛рде рд╣реА рд╕рд╛рде CoffeeScript рдФрд░ LESS рдлрд╛рдЗрд▓реЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рднреА рд╣реИ - рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВред



рдХрдиреЗрдХреНрдЯ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк - рдлреНрд░рдВрдЯреЗрдВрдб рдХреЗ рд╕рдВрдЧрдарди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ



рдкрд╛рд▓реЛрдВ рдореЗрдВ, рджреГрд╢реНрдпрдкрдЯрд▓ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкрдХреНрд╖ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ, рд╕рд░реНрд╡рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╕реНрдерд┐рдд / рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред рдПрд╕реЗрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЕрдкрдиреЗ рдЖрдк рдЗрд╕ рдПрдХреНрд╕реЗрд╕ рддрдХрд░реАрдмрди рдкрд╣реБрдВрдЪ рдЬрд╛рддреА рд╣реИрдВ, рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ: рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЗрдореЗрдЬ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрдореЗрдЬ, рдЖрдк рдЗрд╕реЗ рдПрд╕реЗрдЯреНрд╕ / рдЗрдореЗрдЬреЗрдЬ / рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд░рдЦреЗрдВ - рдЬрдм рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ, рддреЛ рдпрд╣ рдлрд╛рдЗрд▓ рд╣реЛрд╕реНрдЯ / рдЗрдореЗрдЬреЗрдЬ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред /image.png рдпрд╣ рдореВрд▓ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдФрд░ рдЕрдм рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ , LESS рдкрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рдореБрдЭреЗ рдпрд╣ рд╢реИрд▓реА рднрд╛рд╖рд╛ рдкрд╕рдВрдж рд╣реИ)ред



рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдХрдо рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ / рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдЕрдирдкреИрдХ рдХрд░реЗрдВ / - рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдВрдкрддреНрддрд┐ / рд╢реИрд▓рд┐рдпреЛрдВ / рдХрдо рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рд╕реНрдерд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЗ рд▓рд┐рдП рдХрдо рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ (рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП), рдлрд┐рд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЧреНрд▓рд┐рдлрд╝ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рд▓рд┐рдП рдлреЛрдВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рдВрдкрддреНрддрд┐ рдХреА рдЬрдбрд╝ рддрдХ (рд▓рдЧрднрдЧ / рд╕рдВрдкрддреНрддрд┐ / рдлреЛрдВрдЯ)ред рдЕрдм рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдЙрджрд╛рддреНрдд рдкрд╛рда рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ /assets/styles/importer.less рдЦреЛрд▓реЗрдВ: рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореБрдЦреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ рдФрд░ рдЧреНрд░рдВрдЯ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рддрд╛рд░ рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЬрд╛рддреА рд╣реИ - рдпрд╣ рд╕реНрд╡рддрдГ рдЖрдпрд╛рддрдХ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддреА рд╣реИред

рдХреНрд░рдорд╢рдГ, рдлрд┐рд░ рд╣рдо рдЗрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝рдХрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрдВрдЧреЗ

 @import 'bootstrap/bootstrap';
      
      





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

 @icon-font-path: '/fonts/';
      
      





рдЕрдВрдд рдореЗрдВ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдмрд╕ jquery.js рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдВрдкрддреНрддрд┐ / js / рдирд┐рд░реНрднрд░рддрд╛ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ file.js рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛ ред

рдЗрд╕рдХреЗ рд╕рд╛рде, рд╣рдо Sails рдореЗрдВ рдлреНрд░рдВрдЯрдПрдВрдб рдФрд░ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдХреЗ рд╕рдВрдЧрдарди рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рдЪрдп рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕реАрдзреЗ рдмреНрд▓реЙрдЧ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред



рдкреЛрд╕реНрдЯ рдПрдкреАрдЖрдИ рдмрдирд╛рдПрдВ - рдореЙрдбрд▓, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рдкрд░рд┐рдЪрд┐рдд



рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдПрдкреАрдЖрдИ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдмрдирд╛рдПрдВрдЧреЗ - рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдореЙрдбрд▓ рдФрд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ рдХрд╣реЗрдВрдЧреЗ, рдПрдХ рдПрдкреАрдЖрдИ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ:



 sails generate api post
      
      





рдЙрддреНрдкрдиреНрди рдлрд╛рдЗрд▓реЗрдВ рдПрдкреАрдЖрдИ / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреА, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдПрдХ рд╕реАрдЖрд░рдпреВрдбреА рдПрдкреАрдЖрдИ рдмрдирд╛рддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╡реАрдбрд┐рдпреЛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред

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



рдПрдкреАрдЖрдИ / рдореЙрдбрд▓ / рдкреЛрд╕реНрдЯ.рдЬреЗрдПрд╕


 module.exports = { attributes: { title: { type: 'string', maxLength: 120, required: true }, description: { type: 'string', required: true }, content: { type: 'string', required: true } } };
      
      





рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдХрд╛ рдШрдЯрдХ JSON рдХреЗ рд╕рдорд╛рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдмрд╣реБрдд рд╣реА рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ , рд╣рдо рдореЙрдбрд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ 3 рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдПрдХ рд╢реАрд░реНрд╖рдХ, рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдФрд░ рд╕рд╛рдордЧреНрд░реАред рд╕рднреА 3 рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрддреА рд╣реИ, рд╣реЗрдбрд░ рдореЗрдВ 2 рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╣реЛрддреЗ рд╣реИрдВ: рдЕрдзрд┐рдХрддрдо рдЧрддрд┐: рдЕрдзрд┐рдХрддрдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рдВрдмрд╛рдИ, рдЖрд╡рд╢реНрдпрдХ: рдХреНрдпрд╛ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддреЗ рд╕рдордп (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдирд┐рд╡рд╛рд░реНрдп), рддреЛ рд╣рдо рд╢реЗрд╖ 2 рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдореЗрд▓ рдХреЗ рд▓рд┐рдП рджрд░реНрдЬрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдФрд░ рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣реЗрдХреНрд╕ рд░рдВрдЧ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛), рдпрд╣рд╛рдВ рдкреВрд░реА рд╕реВрдЪреА рджреЗрдЦреЗрдВред



рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдореЙрдбрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣рдорд╛рд░реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ - рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЛрдбрд╝ред рдЕрдм рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдПрдкреАрдЖрдИ / рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ / рдкреЛрд╕реНрдЯрдХрдВрдЯреНрд░реЛрд▓рд░.рдЬреЗрдПрд╕ ред



рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ JSON рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рднреА рд╣реЛрддреА рд╣реИ, рдкрд╣рд▓реЗ рд╣рдо рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдмреНрд▓реЙрдЧ рд╕рдХреНрд╖рдо рд╣реЛ - рдФрд░ рддрджрдиреБрд╕рд╛рд░ рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдХреЛ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкрджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирдП рдкреЛрд╕реНрдЯ, рдЕрдВрдд рдореЗрдВ рдкреБрд░рд╛рдирд╛), рдкреГрд╖реНрдареЛрдВ (рдкреЗрдЬрд┐рдиреЗрд╢рди) рдФрд░ рдЬрд┐рд╕ рдкреЗрдЬ рдкрд░ рд╣рдо рдХрд┐рд╕реА рднреА рдкреЛрд╕реНрдЯ рдХреА рдкреВрд░реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ (рдбрд┐рд╕рдХрд╕) рдХреЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдкрдиреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ 3 рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛, рдФрд░ рд░рд┐рдХреЙрд░реНрдб рд╣реЗрд░рдлреЗрд░ рдХреЗ 3 рдореБрдЦреНрдп рдХрд╛рд░реНрдп, рд╕реВрдЪрдХрд╛рдВрдХ: рдЕрдВрддрд┐рдо 10 рдкрджреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ред рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ: рдПрдХ рд╡рд┐рд╢реЗрд╖ zapsi рдХреА рдкреВрд░реА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред



рдкреГрд╖реНрдард╛рдВрдХрди - рд╕реВрдЪреА рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛, рдФрд░ рд╕реВрдЪреА рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрд▓рд╛рдЗрд╕ рдкрд░ рд╕реВрдЪреА рдХреЛ рджреЗрдЦрдирд╛ред рд▓рд┐рдЦрдиреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ - рдЬреЛрдбрд╝рдирд╛, рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рд╣рдЯрд╛рдирд╛ред рдорд╛рдбреНрдпреВрд▓.рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ - рд╣рдо рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗред



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


рд╕реГрдЬрди


 create: function (req, res) { var params = { description : req.param('description'), content : req.param('content'), title : req.param('title'), } Post.create(params).exec(function (err, post) { res.redirect('/post/watch/' + post.id); if (err) return res.send(500); }); }
      
      







рдЗрд╕ рдХреЛрдб рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕реЗрд▓реНрд╕ рдореЗрдВ рдХрд╣рд╛ рдерд╛, рд╕реАрдЖрд░рдпреВрдбреА рдПрдкреАрдЖрдИ рдмрд┐рд▓реНрдЯ-рдЗрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдпреВрдЖрд░рдПрд▓ рдЙрдк-рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЬреАрдИрдЯреА рдпрд╛ рдкреАрдУрдЯреАрдПрд╕рдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкрд╛рд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Post.create - 1 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдкреЛрд╕реНрдЯ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдирд╛ рд╡рд┐рдзрд┐ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рд╕реВрдЪреА рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдореВрд▓реНрдп, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд┐рдХреЙрд░реНрдб рдХреЛ рддрд░реНрдХ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд┐рд╕рдореЗрдВ рд╣рдо CRUD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, Params рд╕реВрдЪреА рдореЗрдВ рдореИрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдпрджрд┐ рдЖрдк рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рд╕рдордЭрд╛рдКрдВрдЧрд╛, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рд╣рдо рдПрдХ POST рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Postman рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд╢реАрд░реНрд╖рдХ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ред рд╡рд┐рд╡рд░рдг, рд╕рд╛рдордЧреНрд░реА - url / p рдкрд░ рдЗрд╕ url рдкрд░ рд╕реНрд╡реАрдХреГрдд рдУрд╕реНрдЯ / рдХреНрд░рд┐рдПрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ req.param ('рдкреИрд░рд╛рдореАрдЯрд░') рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдордиреЗ рдХрд┐рдпрд╛ рдерд╛ред 2) рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╣реБрдП рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкреЛрд╕реНрдЯ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдЖрдЧреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ 500 рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рдЬрдм рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг (рдЬрдм рд╣рдо рдкреЛрд╕реНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ) рд╣рдо рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рд╣рдо рдиреАрдЪреЗ рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ) рдкреЛрд╕реНрдЯ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдпреВрдЖрд░рдПрд▓ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред



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



рдЕрджреНрдпрддрди


 update: function (req, res) { var Id = req.param('id'); var elem = { description : req.param('description'), content : req.param('content'), title : req.param('title') }; Post.update(Id, elem).exec(function (err) { if (err) return res.send(500); res.redirect('/'); }); }
      
      





рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрджреНрдпрддрди рд╡рд┐рдзрд┐ рдмрд╣реБрдд рд╣реА рдирд┐рд░реНрдорд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИ - рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдХреА рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ - рдЬреЛ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреА рддрд░рд╣, рд╣рдо рдкрд╛рд░рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдХреЛрдб рдХрд╛ рд╕рд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдкрдХрдбрд╝ рдЪреБрдХреЗ рд╣реИрдВред рдЖрдЦрд┐рд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗ рд╡рд╣ рд╣реИ рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛рдирд╛ред



рдирд┐рд╖реНрдХрд╛рд╕рди


 delete: function (req, res) { var Id = req.param('id'); Post.destroy(Id).exec(function (err) { if (err) return res.send(500); res.redirect('/post'); }); }
      
      





рдХрд┐рд╕реА рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЖрдИрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



рдореБрдЦреНрдп рднрд╛рдЧ + рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ


рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп "рд╕рд╛рдордиреЗ" рднрд╛рдЧ рдХреЛ рд▓рд┐рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рднрд╛рдЧреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛, рдкрд░рдВрдкрд░рд╛ рд╕реЗ рд╣рдо рд╕реВрдЪрдХрд╛рдВрдХ рдкреГрд╖реНрда рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ рд╕рд┐рд░реНрдл рдкреЗрдЬрд┐рдВрдЧ рд╕реНрд▓рд╛рдЗрд╕ рдХреЗ 1 рдкреГрд╖реНрда рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрдмрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рд╕рдордпред рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИред



 index: function (req, res) { Post.find() .sort('id DESC') .limit(5) .exec(function (err, posts) { if (err) return res.send(500); res.view({ posts: posts }); }); }
      
      







рдЕрдм рдореИрдВ рдХреЛрдб рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ - рдЦреЛрдЬ рд╡рд┐рдзрд┐ рдореЙрдбрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ - рдлрд┐рд░ рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ , рдпрджрд┐ рдЖрдк MySQL, Mongo, рдЖрджрд┐ рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЖрдИрдбреА рдХреА рдЬрдЧрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмрджрд▓рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╣рдорд╛рд░реА рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо 5 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдкрджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЙрддреНрдкрд╛рдж рд╣реЛрдЧрд╛ред рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╣ рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдХреНрд░рдо рдФрд░ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкрджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ: рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЖрдЧреЗ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд┐рдЫрд▓реЗ рдЬреЛрдбрд╝рддреЛрдбрд╝ рд╕реЗ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЕрдВрддрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдЕрдм рд╣рдо рдореБрдЦреНрдп рднрд╛рдЧ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ - рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдзрд┐, рд╡рд╣ рджреГрд╢реНрдп рд╡рд┐рдзрд┐ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрд╕ рд╕реВрдЪреА рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рджреГрд╢реНрдп рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рд╕реВрдЪреА рд╣реИ, рдЕрднрд┐рдЧрдо рдХреЗ рд▓рд┐рдП рдореИрдВ рдирд╛рдо рдкрджреЛрдВ рдФрд░ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реВрдЪреА рддрддреНрд╡ рдмрдирд╛рддрд╛ рд╣реВрдВ - рдЕрдирд╛рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖ рдЧрдИред



рд╕рдордЧреНрд░ рджреГрд╢реНрдп


 watch: function (req, res) { var Id = req.param('id'); Post.findOne(Id).exec(function (err, post) { if (!post) return res.send(404); if (err) return res.send(500); res.view({ post: post }); }); }
      
      





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



рдЕрдЧрд▓рд╛, рд╣рдо рдкреГрд╖реНрдард╛рдВрдХрди рдФрд░ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдкрде рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВрдЧреЗ рдФрд░ рд╕реАрдзреЗ рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░ рдЬрд╛рдПрдВрдЧреЗред



 page: function (req, res) { var page = req.param('page'); Post.find() .sort('id DESC') .paginate({ page : page, limit: 5 }) .exec(function (err, posts) { if (err) return res.send(500); res.view({ posts: posts }); }); }
      
      







рдпрд╣рд╛рдБ рд╣рдо рдЗрдВрдбреЗрдХреНрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рдХрд┐ рд╣рдордиреЗ рдпрд╣рд╛рдБ рдкреЗрдЬреЗрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИ , рдЬреЛ JSON рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рдкреНрд░рддрд┐ рдкреГрд╖реНрда рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕реАрдорд╛ рдФрд░ рдЙрд╕ рд╕реНрд▓рд╛рдЗрд╕ рдХреЗ рдмрд╣реБрдд рдкреГрд╖реНрда рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕реНрд▓рд╛рдЗрд╕ рдкреЗрдЬ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рд╣рдо рдПрдХ рдкреЗрдЬ рд╡реЗрд░рд┐рдПрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ - рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЬреЛ рдкреЗрдЬ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ - рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрд░реНрдХ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ - рдмрд┐рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдиреБрд░реЛрдз рддрддреНрд╡реЛрдВ рдХреЗ: рд╕реАрдзреЗ, рдкрде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, config / path.js рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕рдВрдкрд╛рджрди рд╢реБрд░реВ рдХрд░реЗрдВред рдирд┐рдореНрди рдХреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред



  'get /post/:page': { controller: 'post', //  action: 'page' //  },
      
      





рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ, рд╣рдо рдПрдХ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ - рдЕрдиреБрд░реЛрдз рдХрд╛ рдкреНрд░рдХрд╛рд░ рдкрд╣рд▓реЗ, url, рдФрд░ рдкреНрд░реЗрд╖рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ - : рдкреГрд╖реНрда - рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ ( req.param ('рдкреЗрдЬ') ) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ - / рдкреЛрд╕реНрдЯ / рдкреЗрдЬ? рдкреЗрдЬ = 2 )ред рдкреГрд╖реНрдард╛рдВрдХрди рдХреЗ рд╕рд╛рде, рд╣рдо рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдирд┐рдпрдВрддреНрд░рдг рдпреЛрдЬрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ:



  'post /post/create': { controller: 'post', action: 'create' }, 'get /post/delete/:id': { controller: 'post', action: 'delete' }, 'post /post/update': { controller: 'post', action: 'update' }
      
      







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



рдХреА рдкреНрд░рд╕реНрддреБрддрд┐


рдкрд╛рд▓ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдордиреЗ рдкреЛрд╕реНрдЯ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдпрд╛ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рджреГрд╢реНрдп / рдкреЛрд╕реНрдЯ / * рдкрд░ рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдЙрдкрдХрдВрдЯреНрд░реЛрд▓рд░ рдирд╛рдо рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рджреГрд╢реНрдп рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИ, Sails рдЬреЗрдб, рд╣реИрдВрдбрд▓рдмрд╛рд░, HAML рд╕рд╣рд┐рдд рдХрдИ рдЕрд╕реНрдерд╛рдпреА рдЗрдВрдЬрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдиреНрдп, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдИрдЬреЗрдПрд╕ рдЗрд╕рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рдкрд░ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдПрдХ рдкреЛрд╕реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ, рдФрд░ index.ejs рдФрд░ page.ejs рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВ:



views / post / index.ejs рдФрд░ views / post / page.ejs


 <div class="container text-center"> <h2 class="text-center">MY BLOG APP</h2> <div class="row"> <div class="col-md-1"></div> <div class="col-md-10"> <% _.each(posts, function (post) { %> <div class="panel panel-default"> <div class="panel-body"> <h3 class="text-center"><%= post.title %></h3><hr> <article> <%= post.description %> </article> </div> <div class="panel-footer"> <a href="/post/watch/<%= post.id %>" class="btn btn-info">LEARN MORE</a> </div> </div> <% }) %> </div> <div class="col-md-1"> </div> <ul class="pagination"> <li><a href="/post">1</a></li> <li><a href="/post/2">2</a></li> <li><a href="/post/3">3</a></li> </ul> </div>
      
      







_.each () рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ, рдЕрдЧрд▓рд╛ рдХреЙрд▓рдмреИрдХ рдЬреЛ рд╣рдореЗрдВ рд╕рд░рдгреА рдХреЗ рдПрдХ рддрддреНрд╡ рд╕реЗ рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИ (рдХреЛрдгреАрдп рд╕реЗ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдЬреИрд╕рд╛ рдХреБрдЫ), рдлрд┐рд░ рд╣рдо рдЙрди рдбреЗрдЯрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╣реИ EJS рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЪрд░ рдХрд╛ рдорд╛рди <% =%> рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╛рда рд╣реИ, рдпрд╛ <%%> рдореЗрдВ рд╣рдо рдХрд╛рд░реНрдп рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ (рдпрджрд┐ рдпрд╣ рд╕рдордЭрд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ)ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдИрдЬреЗрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдореБрдЦреНрдп рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рд╣рдЬ рд╕реНрддрд░ рдкрд░ рд╕рдордЭрддреЗ рд╣реИрдВ - рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдВрддрд┐рдо рджреГрд╢реНрдп рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреЛрд╕реНрдЯ - рд╡рд┐рдЪрд╛рд░ / рдкреЛрд╕реНрдЯ / рд╡реЙрдЪ.рдЬреЗрдПрд╕ рдХрд╛ рдПрдХрд▓ рдкреНрд░рджрд░реНрд╢рди рд╣реИ



рд╡рд┐рдЪрд╛рд░ / рдкреЛрд╕реНрдЯ / watch.ejs


 <div class="container"> <div class="panel panel-default"> <div class="panel-body text-center"> <h3><%= post.title %></h3><hr> <article> <%= post.content %> </article> </div> </div> </div>
      
      







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



 sails lift
      
      







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



2 рд▓реЗрдЦ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛



рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдФрд░ рд▓реЗрдЦрди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА:




All Articles