Ð ÑÑом Ñазделе пÑедлагаÑÑÑÑ Ð·Ð°Ð´Ð°Ñи по Ñеме AJAX.
ÐонеÑно же, они ÑÑебÑÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ñ ÑеÑвеÑом. ÐÑ Ð±Ñдем иÑполÑзоваÑÑ ÑеÑвеÑнÑÑ ÑаÑÑÑ, напиÑаннÑÑ Ð½Ð° JavaScript, на Node.JS.
ÐÑли Ð²Ñ Ð½Ðµ иÑполÑзовали Node.JS Ñанее â не беÑпокойÑеÑÑ. ÐдеÑÑ Ð½Ð°Ñей ÑелÑÑ ÑвлÑеÑÑÑ Ð¿ÑеимÑÑеÑÑвенно клиенÑÑÐºÐ°Ñ ÑаÑÑÑ, поÑÑÐ¾Ð¼Ñ Ð¿ÑÑмо ÑейÑÐ°Ñ Ð¸Ð·ÑÑаÑÑ Node.JS не обÑзаÑелÑно. СеÑвеÑнÑе ÑкÑипÑÑ Ñже гоÑовÑ. ÐÑжно ÑолÑко поÑÑавиÑÑ Node.JS и модÑли, ÑÑÐ¾Ð±Ñ Ð¸Ñ Ð·Ð°Ð¿ÑÑкаÑÑ.
УÑÑановка
ÐÐ»Ñ Ð½Ð°ÑÑÑойки окÑÑÐ¶ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð´Ð¾ÑÑаÑоÑно ÑделаÑÑ Ð´Ð²Ð° Ñага:
-
СнаÑала ÑÑÑановиÑе Ñам ÑеÑÐ²ÐµÑ Node.JS.
ÐÑли Ñ Ð²Ð°Ñ Unix-ÑиÑÑема â ÑекомендÑеÑÑÑ ÑобÑаÑÑ Ð¿Ð¾ÑледнÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¸Ð· иÑÑ Ð¾Ð´Ð½Ð¸ÐºÐ¾Ð², а Ñакже NPM. ÐÑ ÑпÑавиÑеÑÑ.
ÐÑли Windows â поÑеÑиÑе ÑÐ°Ð¹Ñ https://nodejs.org или ÑкаÑайÑе ÑÑÑановÑик (32 или 64-биÑнÑй) Ñ ÑаÑÑиÑением
.msiиз https://nodejs.org/dist/latest/. -
ÐÑбеÑиÑе диÑекÑоÑиÑ, в коÑоÑой бÑдеÑе ÑеÑаÑÑ Ð·Ð°Ð´Ð°Ñи. ÐапÑÑÑиÑе в ней:
npm install node-staticÐÑо ÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ Ð² ÑекÑÑÑÑ Ð´Ð¸ÑекÑоÑÐ¸Ñ Ð¼Ð¾Ð´ÑÐ»Ñ node-static, коÑоÑÑй ÑÑÐ°Ð½ÐµÑ Ð°Ð²ÑомаÑиÑеÑки доÑÑÑпнÑм Ð´Ð»Ñ ÑкÑипÑов из поддиÑекÑоÑий.
ÐÑли Ñ Ð²Ð°Ñ Windows и команда не ÑÑабоÑала, Ñо ÑкоÑее вÑего дело в Ñом, ÑÑо «не Ð¿Ð¾Ð´Ñ Ð²Ð°ÑилиÑÑ» новÑе пÑÑи. ÐеÑезапÑÑÑиÑе Ð²Ð°Ñ ÑайловÑй Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¸Ð»Ð¸ конÑолÑ.
ÐÑовеÑка
ÐÑовеÑÑÑе инÑÑалÑÑиÑ.
ÐÐ»Ñ ÑÑого:
-
СоздайÑе какÑÑ-нибÑÐ´Ñ Ð¿Ð¾Ð´Ð´Ð¸ÑекÑоÑÐ¸Ñ Ð¸ в ней Ñайл
server.jsÑ Ñаким ÑодеÑжимÑм:var http = require('http'); var static = require('node-static'); var file = new static.Server('.'); http.createServer(function(req, res) { file.serve(req, res); }).listen(8080); console.log('Server running on port 8080'); -
ÐапÑÑÑиÑе его:
node server.js.Ðолжно вÑвеÑÑи:
Server running on port 8080
ÐÑи попÑÑке запÑÑка двÑÑ ÑеÑвеÑов (напÑимеÑ, в ÑазнÑÑ ÐºÐ¾Ð½ÑолÑÑ ) â бÑÐ´ÐµÑ ÐºÐ¾Ð½ÑÐ»Ð¸ÐºÑ Ð¿Ð¾ÑÑов и оÑибка.
-
ÐÑкÑойÑе в бÑаÑзеÑе http://127.0.0.1:8080/server.js.
Ðолжно вÑвеÑÑи код Ñайла
server.js.
ÐÑли вÑÑ ÑабоÑÐ°ÐµÑ â оÑлиÑно, ÑепеÑÑ Ð²Ñ Ð³Ð¾ÑÐ¾Ð²Ñ ÑеÑаÑÑ Ð·Ð°Ð´Ð°Ñи.
ÐÑимеÑÑ
РпÑимеÑÐ°Ñ , за Ñедким иÑклÑÑением, Ð´Ð»Ñ ÐºÑаÑкоÑÑи бÑÐ´ÐµÑ Ð¿ÑиводиÑÑÑÑ Ð½Ðµ полнÑй ÑкÑÐ¸Ð¿Ñ Ð½Ð° Node.JS, а ÑолÑко код обÑабоÑки запÑоÑа.
ÐапÑимеÑ, вмеÑÑо:
var http = require('http');
var url = require('url');
var querystring = require('querystring');
function accept(req, res) {
res.writeHead(200, {
'Content-Type': 'text/plain',
'Cache-Control': 'no-cache'
});
res.end("OK");
}
http.createServer(accept).listen(8080);
â¦ÐÑÐ´ÐµÑ ÑолÑко ÑÑнкÑÐ¸Ñ accept, или даже ÑолÑко ÐµÑ ÑодеÑжимое:
res.writeHead(200, {
'Content-Type': 'text/plain',
'Cache-Control': 'no-cache'
});
ÐÑновнÑе меÑодÑ
Ð ÑÑнкÑии accept иÑполÑзÑÑÑÑÑ Ð´Ð²Ð° обÑекÑа:
reqâ обÑÐµÐºÑ Ð·Ð°Ð¿ÑоÑа («request»), Ñо еÑÑÑ Ñо, ÑÑо пÑиÑлал ÐºÐ»Ð¸ÐµÐ½Ñ (обÑÑно бÑаÑзеÑ), из него ÑиÑаем даннÑе.resâ обÑÐµÐºÑ Ð¾ÑвеÑа («response»), в него пиÑем даннÑе в оÑÐ²ÐµÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ.- вÑзов
res.writeHead(HTTP-код, [ÑÑÑока ÑÑаÑÑÑа], {заголовки})пиÑÐµÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¸. - вÑзов
res.write(txt)пиÑÐµÑ ÑекÑÑ Ð² оÑвеÑ. - вÑзов
res.end(txt)â завеÑÑÐ°ÐµÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¾ÑвеÑом.
- вÑзов
Ðемо
ÐÑоме пÑоÑмоÑÑа кода, можно бÑÐ´ÐµÑ Ð¿Ð¾Ð¿ÑобоваÑÑ Ð¸ ÑкаÑаÑÑ ÑазлиÑнÑе демки.
ÐÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð´ÐµÐ¼Ð¾, можеÑе попÑобоваÑÑ Ð½Ð°Ð¶Ð°ÑÑ Ð½Ð° ÐºÐ½Ð¾Ð¿ÐºÑ â она ÑабоÑаеÑ.
ÐÑли Ñ Ð¾ÑиÑе поÑмоÑÑеÑÑ Ð¿ÑÐ¸Ð¼ÐµÑ Ð¿Ð¾Ð±Ð»Ð¸Ð¶Ðµ и поигÑаÑÑ Ñ Ð½Ð¸Ð¼ â ÑкаÑайÑе аÑÑ Ð¸Ð² (кнопка ÑпÑава-ÑвеÑÑ Ñ Ð² пÑимеÑе вÑÑе), он бÑÐ´ÐµÑ ÑабоÑаÑÑ Ð¸ на ваÑем Node.JS.
ÐолÑÑе о Node.JS
ÐолÑÑе о ÑеÑвеÑе Node.JS можно ÑзнаÑÑ Ð² ÑкÑинкаÑÑе по Node.JS.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)