HTML / CSS / JS + Node.js + рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ = рдХреНрд░реЙрд╕рдСрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ


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

1. рдпрджрд┐ рдЖрдк рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдбрд╛рд▓ рджрд┐рдпрд╛
npm install express 

2. рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ server.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
  var express = require('express'); var http = require('http'); var index = require('./routes/index.js'); var app = express(); //    express` app.get('/', index.index); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

3. рдПрдХ index.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕реЗ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ
 exports.index = function(req, res){ res.render('index', {}); }; 

4. Index.ejs рдмрдирд╛рдПрдВ (рдореИрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдИрдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ) рдФрд░ рдЗрд╕реЗ рджреГрд╢реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello world</title> </head> <body> <h1>Hello world!</> </body> </html> 

рджреЗрдЦрд╛!

рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ
 node server.js 


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

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

рдпрд╣рд╛рдБ рдиреБрд╕реНрдЦрд╛ рд╣реИ:
1. рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ рдХреЛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП html рдкреГрд╖реНрда рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред
package.json рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ
 "main": "nw-start.html" 

2. nw-start.html рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛
 <!DOCTYPE html> <html> <head> <script> function bodyOnLoad(){ require('./server.js'); window.location.assign('http://localhost:3000/'); } </script> </head> <body onload="bodyOnLoad()"> <h1> Loading... </h1> </body> </html> 

3. рд╕рднреА server.js рдХреЛрдб рдПрдХ рддрддреНрдХрд╛рд▓ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
 (function startServer(){ var express = require('express'); var app = express(); .... http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); })(); 

4. рд╣рдо рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЬрд┐рдк-рдЖрд░реНрдХрд╛рдЗрд╡ nw-project.zip рдореЗрдВ рдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ
5. рд▓реЙрдиреНрдЪ
 nw nw-project.zip 


рдПрдХ рдЫреЛрдЯреЗ рд╡рд┐рд░рд╛рдо рдХреЗ рджреМрд░рд╛рди рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди "рд╕рд░реНрд╡рд░" рднрд╛рдЧ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ


рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЙрд╕рдХрд╛ рд╕рд╛рд░ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдиреЛрдб-рд╡реЗрдмрдХрд┐рдЯ рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреНрд▓рд╛рдЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдмреЙрдбреАрдСрдирд▓реЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред bodyOnLoad server.js рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ (рдХреЙрд▓ рдиреЛрдбред рдЬреЗрдПрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)ред рдХреЙрд▓ server.js рдореЗрдВ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, http-server рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдкрдгред рдпрд╣ рдХреЗрд╡рд▓ рдкреГрд╖реНрда рдХрд╛ URL рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдХрд┐ window.location.assign ('http: // localhost: 3000 /') рдХрд░рддрд╛ рд╣реИред

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

рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рд╣реИ ...

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


All Articles