Слайд 2JavaScript на сервере – node.js на Windows
Гайдар Магдануров
@gaidar
Руководитель направления веб-технологий, Microsoft
Слайд 3Содержание
JavaScript на сервере
Философия node.js
Реализация веб-сервера на node.js
Разработка для node.js на Windows
Модули
node.js
Отладка node.js приложений
Слайд 4Риторический вопрос
JavaScript на сервере… зачем?
Слайд 5JavaScript на сервере… зачем?
JavaScript популярен
Низкий порог входа
Сложность пропорциональна навыкам
Много client-side разработчиков
Множество
доступных библиотек
Слайд 6Философия node.js
В чем сила, брат?..
Слайд 7Философия node.js
Масштабируемые веб-приложения
Отсутствие блокирующих вызовов
Простота развертывания и поддержки
Слайд 8Блокирующий код
var data = file.read('filename');
// блокировка на время чтения
processFileData(data);
Слайд 9Отсутствие блокировки
file.read('filename',
// функция с обратным вызовом
function(data)
{
processFileData(data);
}
);
Слайд 10Реализация node.js
Один основной рабочий поток
JavaScript движок Google V8
Неблокирующие функции стандартных библиотек
Разработка
на основе callback-функций
Модульная расширяемость
Слайд 12Веб-сервер
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");
Слайд 13Tcp-сервер
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);
Слайд 15Инструменты node.js
Разработка на Windows
Слайд 16Инструменты 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)
Слайд 17node.js и WebMatrix
И Visual Studio!
Слайд 19Реализация модуля
// файл mymodule.js
exports.helloWorld = function() {
return 'Hello World!';
};
//
файл app.js
var mymod = require('./mymodule');
console.log(mymod.helloWorld());
Слайд 20Модули для node.js
github.com/joyent/node/wiki/modules
Слайд 21Установка модулей - NPM
Командный файл npm.cmd
Необходимы права администратора
Установка модулей
npm install
express
Список установленных модулей
npm ls
Слайд 22Установка модулей
github.com/joyent/node/wiki/modules
Слайд 23Отладка node.js
Встроенный отладчик V8
node.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
Слайд 26Сценарии использования
Приложения "реального времени"
Онлайн игры
Сервисы обмена сообщениями
Чаты
"Умный" прокси для статики
Отсутствие длительных
вычислений
Разработчики - фанаты JavaScript
Слайд 28JavaScript на сервере – node.js на Windows
Гайдар Магдануров
@gaidar
Руководитель направления веб-технологий, Microsoft