рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЕрдзрд┐рдирд╛рдпрдХрд╡рд╛рджреА рдврд╛рдВрдЪрд╛

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

рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдПрдБ



рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛рдПрдВ



рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╕реЗрдЯрдЕрдк


1. рд╣рдо npm ( https://npmjs.org/package/impress ) рд╕реЗ рдЖрддреЗ рд╣реИрдВ
$ npm install impress 

2. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ - / рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ / рдЗрдВрдкреНрд░реЗрд╢рди / рдЙрджрд╛рд╣рд░рдг / copyContentToProjectFolder рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (server.js, setup.js, config.js рдФрд░ рд╕рд╛рдЗрдЯреНрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

3. config рд╡рд░реНрдЧреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП config.js рдлрд╝рд╛рдЗрд▓ рд╕реЗрдЯ рдХрд░реЗрдВ :
рдбреЗрдЯрд╛рдмреЗрд╕ - рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЦреЛрд▓реЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╕реВрдЪреАрдмрджреНрдз рд╕рдВрдЧреНрд░рд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реБрд▓рдн рд╣реЛрдВрдЧреЗ: db.dbName.collectionName.find (...)ред рд╡рд┐рдиреНрдпрд╛рд╕ рдЙрджрд╛рд╣рд░рдг:
 dbName: { url: "mongodb://localhost:27017/dbName", collections: ["collname1", "collname2"] } 

рд╕рддреНрд░ - рдирд╛рдо рд╕рддреНрд░ рдХреБрдХреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд▓рдВрдмрд╛рдИ рдФрд░ рд╡рд░реНрдг рд╣реИ, рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╕рддреНрд░реЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХрд╛ рдирд╛рдоред
рдХреНрд▓рд╕реНрдЯрд░ - рдПрдХ рдЙрджрд╛рд╣рд░рдг рд░рдгрдиреАрддрд┐ (рдмрд╣реБ рд╕реВрддреНрд░рдг рдкреНрд░рдХрд╛рд░) рдХреА рд╕реНрдерд╛рдкрдирд╛ред
рд╕рд░реНрд╡рд░ - рдирд╛рдорд┐рдд рд╕рд░реНрд╡рд░ (рдЗрдВрдЯрд░рдлрд╝реЗрд╕ / рдкреЛрд░реНрдЯ), рдкреНрд░рддреНрдпреЗрдХ рд╣реЛрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП - рдирд╛рдорд╛рдВрдХрд┐рдд рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдЬреЛ рдЗрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рд╕реНрдЯреЗрдЯрд┐рдХ - рд╕реНрдЯреЗрдЯрд┐рдХреНрд╕ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдорд╛рд╕реНрдХ рдХреА рдПрдХ рд╕рд░рдгреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ["/ css / *", "/ рдЪрд┐рддреНрд░ / *" , "/ js / *", "/favicon.ico", "/index.html"]ред
рдореЗрдЬрдмрд╛рди - рдирд╛рдорд┐рдд рдореЗрдЬрдмрд╛рди (рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ), рдЖрдк рдирд╛рдордХрд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "* .myhost.com"ред
рдорд╛рд░реНрдЧреЛрдВ - рдЕрдиреБрд░реЛрдз рдирд╛рдо рдЕрдЧреНрд░реЗрд╖рдг рдорд╛рд░реНрдЧреЛрдВред

4. MongoDB рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рдиреЛрдб рд╕реЗрдЯрдЕрдк рдЪрд▓рд╛рдПрдБред js рдФрд░ "y" рджрдмрд╛рдПрдБред

5. server.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд╣рдо рдЕрдкрдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
 require('impress'); impress.init(function() { //    }); 

6. рдФрд░ рд╣рдо рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
 $ node server.js 

рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ


1. рдЯреЗрдореНрдкрд▓реЗрдЯ: рдЬрдм рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ, рддреЛ http: // localhost рдЦреЛрд▓реЗрдВ
рдФрд░ рдпрд╣рд╛рдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рджреЗрдЦреЗрдВ: /sites/localhost/html.template
рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, "рдЦрд╛рддрд╛ рдмрдирд╛рдПрдВ", "рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

2. рддрд░реНрдХ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рд╛рде "left.template" рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг , http рдЦреЛрд▓реЗрдВ : // localhost / рдмрд╛рдзрд╛
рдФрд░ рдпрд╣рд╛рдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рджреЗрдЦреЗрдВ: /sites/localhost/override/left.template
рдпрд╣рд╛рдБ рдореВрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ: / sites/localhost/html.template
рдпрд╣рд╛рдБ рд╕рд░реНрд╡рд░ рд▓реЙрдЬрд┐рдХ рд╣реИрдВрдбрд▓рд░: /sites/localhost/request.js
3. JSON рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ , рджреЗрдЦреЗрдВ: http: //localhost/api/examples/methodName.json
рдФрд░ рдХреЛрдб рдпрд╣рд╛рдБ / sites /localhost/api/examples/methodName.json/s.s рд╣реИред
4. рдПрдХ рдЕрдирд╛рдо рд╕рддреНрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг : http: //localhost/api/auth/anonymousSession.json
рдФрд░ рдХреЛрдб рдХреНрд░рдорд╢рдГ: /sites/localhost/api/auth/anonymousSession.json/get.js
5. рдПрдХ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг : рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╣рдо "рдИрдореЗрд▓" рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ / рдПрдкреАрдЖрдИ / рд░рд╛рдЗрдЯреНрд╕ / рд░реЗрдЧреНрдпреБрд▓рд╛рдЗрдбреЗрд╢рди.рдЬреЙрди рдкрд░ POST рдХрд░рддреЗ рд╣реИрдВ
рдФрд░ рдХреЛрдб: /sites/localhost/api/auth/regvalidation.json/post.js
6. MongoDB рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдХрд╛ рдЙрджрд╛рд╣рд░рдг :: http: //localhost/api/examples/getUser.json
рдФрд░ рдХреЛрдб рдпрд╣рд╛рдВ рд╣реИ: /sites/localhost/api/examples/getUsers.json/get.sr
рдпрд╛ рдпрд╣рд╛рдБ рдпрд╣ рд╕рд╣реА рд╣реИ:
 module.exports = function(req, res, callback) { res.context.data = []; db.impress.users.find({}).toArray(function(err, nodes) { res.context.data = nodes; callback(); }); } 

рд╕рдВрджрд░реНрдн


рдЧреАрдердм рдкрд░: https://github.com/tshemsedinov/impress
Npm рдореЗрдВ: https://npmjs.org/package/impress

UPD: Hetzner EX4 рд╣реЛрд╕реНрдЯрд┐рдВрдЧ (Intel Core i7-2600 Quad-Core, 16 GB DDR3 RAM) рдкрд░ рдмрд╣реБрдд рдЕрд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг 5 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 22,572 рдЕрдиреБрд░реЛрдз рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЕрдиреБрд░реЛрдз рджрд┐рдпрд╛ рдЧрдпрд╛ред

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


All Articles