JavaScript на сервере – node.js на Windows
-
Upload
gaidar-magdanurov -
Category
Technology
-
view
3.111 -
download
8
description
Transcript of JavaScript на сервере – node.js на Windows
![Page 1: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/1.jpg)
![Page 2: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/2.jpg)
#html5camp
JavaScript на сервере – node.js на Windows
Гайдар Магдануров
@gaidar
Руководитель направления веб-технологий, Microsoft
![Page 3: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/3.jpg)
Содержание
JavaScript на сервереФилософия node.jsРеализация веб-сервера на node.jsРазработка для node.js на WindowsМодули node.jsОтладка node.js приложений
![Page 4: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/4.jpg)
#html5camp
Риторический вопросJavaScript на сервере… зачем?
![Page 5: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/5.jpg)
JavaScript на сервере… зачем?
JavaScript популяренНизкий порог входаСложность пропорциональна
навыкамМного client-side разработчиковМножество доступных библиотек
![Page 6: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/6.jpg)
#html5camp
Философия node.js
В чем сила, брат?..
![Page 7: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/7.jpg)
Философия node.js
Масштабируемые веб-приложения
Отсутствие блокирующих вызовов
Простота развертывания и поддержки
![Page 8: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/8.jpg)
Блокирующий код
var data = file.read('filename');
// блокировка на время чтенияprocessFileData(data);
![Page 9: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/9.jpg)
Отсутствие блокировки
file.read('filename',
// функция с обратным вызовом function(data) { processFileData(data); }
);
![Page 10: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/10.jpg)
Реализация node.js
Один основной рабочий потокJavaScript движок Google V8Неблокирующие функции
стандартных библиотекРазработка на основе callback-
функцийМодульная расширяемость
![Page 11: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/11.jpg)
#html5camp
Реализация веб-сервера
HTTP
![Page 12: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/12.jpg)
Веб-сервер
var http = require('http');
http.createServer(function (req, res){
res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n');
}).listen(8080, "127.0.0.1");
![Page 13: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/13.jpg)
Tcp-сервер
var net = require('net');
var server = net.createServer(function (c) { console.log('connected'); c.on('end', function (){ console.log('disconnected'); }); c.write('hello\r\n'); c.pipe(c);});server.listen(8888);
![Page 14: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/14.jpg)
#html5camp
Сервер на node.js
HTTP и TCP
![Page 15: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/15.jpg)
#html5camp
Инструменты node.js
Разработка на Windows
![Page 16: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/16.jpg)
Инструменты node.js
Любой текстовый редакторVisual Studio"Родная" поддержка в WebMatrix
— WebMatrix (microsoft.com/web/webmatrix)
— Node.js (nodejs.org/#download)— iisnode модуль (go.microsoft.com/?
linkid=9784329)
— Шаблоны WebMatrix (tinyurl.com/cxpeufg)
![Page 17: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/17.jpg)
#html5camp
node.js и WebMatrix
И Visual Studio!
![Page 18: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/18.jpg)
#html5camp
Модули node.js
![Page 19: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/19.jpg)
Реализация модуля
// файл mymodule.jsexports.helloWorld = function() { return 'Hello World!';};
// файл app.jsvar mymod = require('./mymodule');
console.log(mymod.helloWorld());
![Page 20: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/20.jpg)
Модули для node.js
github.com/joyent/node/wiki/modules
![Page 21: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/21.jpg)
Установка модулей - NPM
Командный файл npm.cmdНеобходимы права
администратораУстановка модулей
npm install express Список установленных модулей
npm ls
![Page 22: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/22.jpg)
#html5camp
Установка модулейgithub.com/joyent/node/wiki/modules
![Page 23: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/23.jpg)
Отладка node.js
Встроенный отладчик V8node.exe debug app.js
Точка останова – инструкция debugger;
Командыrun (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb), watch, unwatch, watchers, repl, restart, kill, list, scripts, breakpoints, version
![Page 24: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/24.jpg)
#html5camp
Отладка
debug
![Page 25: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/25.jpg)
#html5camp
Сценарии использования
![Page 26: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/26.jpg)
Сценарии использования
Приложения "реального времени"— Онлайн игры— Сервисы обмена сообщениями— Чаты
"Умный" прокси для статики— Отсутствие длительных вычислений
Разработчики - фанаты JavaScript
![Page 27: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/27.jpg)
#html5camp
Пример приложения
Чат на node.js
![Page 28: JavaScript на сервере – node.js на Windows](https://reader031.fdocuments.net/reader031/viewer/2022012400/5486c963b47959ec0c8b52f6/html5/thumbnails/28.jpg)
#html5camp
JavaScript на сервере – node.js на Windows
Гайдар Магдануров
@gaidar
Руководитель направления веб-технологий, Microsoft