Страницы

воскресенье, 12 мая 2013 г.

Node.js. Пишем простой веб-сервер.

Полученный в результате сервер будет раздавать содержимое заданного файла в формате text/html на заданный порт. Очень упрощенный вариант, без каркасов. Требования: установленная платформа Node.js.



Открываем блокнот, создаем файл, назовем его srv.js. Пишем код сервера.
var args = process.argv.slice(2);
// проверим аргументы: путь к файлу и порт
if (args.length != 2) {
 console.log('Не достаточно аргументов');
 return;
}
// проверим наличие файла
var fs = require('fs');
if (!fs.existsSync(args[0])){
 console.log('Файл ' + args[0] + ' не найден');
 return;
}
// запускаем сервер
var http = require('http');
http.createServer( function(req, res) {
 res.writeHead(200, {'Content-Type': 'text/html'});
 res.end(fs.readFileSync(args[0], {'encoding': 'utf-8'}));
} ).listen(args[1], '127.0.0.1');
console.log('Сервер успешно запущен, порт ' + args[1]);

Создаем еще один файл, назовем его index.html. Пишем код страницы.
<!DOCTYPE html>
<html>
 <head>
  <title>Node.js HTTP Server</title>
 </head>
 <body>
  <h1>Hello, Node.js HTTP Server!</h1>
 </body>
</html>

Открываем консоль, создаем каталог для файлов сервера, назовем его _srv.
Переходим в созданный каталог, копируем в него файлы, запускаем сервер.

Открываем браузер, переходим по указанному при запуске сервера адресу (в моем случае - http://localhost:8124/).

Для остановки сервера нажимаем клавиатурную комбинацию Ctrl+C.