«Hello, World!» на Node.js

Думаете, что я всё, сдулся, да? Что ни одну статью больше написать не могу? А вот и нет! Могу!

Сама идея разрабатывать и серверную и клиентскую часть для Web на одном языке весьма заманчива. При желании для этого можно использовать Java + GWT. Я как-то однажды даже писал простенькое приложение на такой связке. В этой же статье я попытаюсь создать простое приложение на Node.js.

Для начала скачаем сам Node.js с официального сайта https://nodejs.org. Если вы используете Windows, то лучше всего выбрать msi пакет с соответствующей вашей системе разрядностью.

После установки создайте какую-нибудь папку для нашего первого приложения на Node.js. Внутри создайте пока пустой файл “example.js”.

Чтобы создать простой сервер, который будет принимать HTTP-запросы и возвращать ответ, нам нужно подключить модуль http с помощью команды require:

Здесь для объявления переменной-константы мы использовали const  из ES-2015. Теперь мы можем использовать экспортируемые методы и свойства модуля http обращаясь к нашей переменной http, к которой мы присвоили результат вызова require.

Сам файл “example.js”, который мы пишем — это тоже модуль. Мы можем его подключить в каком-нибудь другом файле. Например для файла “testrequire.js”, находящегося в том же каталоге:

После чего мы можем в файле “testrequire.js” использовать экспортируемые методы и свойства модуля “example.js”. Сейчас, правда, он ничего не экспортирует. Экспортировать можно добавляя значения в  module.exports:

 Теперь в “testrequire.js” мы можем использовать наши экспортируемые x  и f1:

Теперь мы можем запустить “testrequire.js” на выполнение командой:

В консоли выведется:

Теперь в нашем “example.js” создадим простой сервер, который будет отвечать “Hello, World” на все запросы:

В createServer  мы передаём функцию, которая будет отвечать на каждый запрос сервера. У неё два параметра: request  (запрос) и response  (ответ). В теле функции мы указываем HTTP status code = 200 OK и заголовок ответа Content-Type : text/plain, затем вызываем response.end('Hello, World\n');, что указывает, что мы указали все заголовки и тело ответа (в данном случае тело ответа мы передаём в самом response), и завершает ответ. В данном случае мы использовали новый способ объявления функций из ES-2015. В старом варианте JavaScript этот кусок выглядел бы так:

Осталось только запустить сервер на прослушивание какого-нибудь порта с помощью listen:

В метод console.log  мы передали строку с кавычками `  — это новый тип кавычек из ES-2015 в дополнение к старым, который позволяет добавлять переводы строк, а также выражения в ${...}  (в данном случае мы вставили значения параметров hostname и port.

Наш простенький сервер готов. Запустим его с командной строки:

В консоли выведется:

А в браузере мы сможем по адресу http://localhost:3000/ увидеть строчку “Hello, World”.

 

«Hello, World!» на Node.js: 3 комментария

  1. JavaScript это чудо в перьях.
    Возьмём и объявим два объекта:
    var human = {name:»Richard»};
    var figure = {strong: true};
    human.__proto__ = figure.
    После этого human.strong даёт true.
    Или же можно вызывать метод Object.setPrototypeOf(human, figure), он тоже установит свойство __proto__ для human.
    Надо отмѣтить, что при создании объекта с помощью фигурных скобок объект получает в качестве прототипа сам объект Object (то есть Object.prototype.__proto__ или ещё что-то).

    Однако если создать объект так:
    gentleman = Object.create(null);// создаётся объект, у которого в протитипе null
    и назначить ему свойство __proto__
    gentleman.__proto__ = figure;
    gentleman.strong будет undefined;

    Только вызвав Object.setPrototypeOf(gentleman, figure)
    можно назначить прототип для объекта, созданного без прототипа!!!!
    Это определёно стандартом каким-то или глюк вообще?

  2. Сергей Есенин, будучи «московским озорным гулякой», писал стихи вроде «я ли вам не свойский, я ль не деревенский», сомневаясь в своей деревенскости.
    Если блоггер пишет, что он «сдулся», возможно, ему пора закрывать блог. Для этого нужно написать что-то глубокомысленное напоследок.
    Можно к примеру взять в пример этот блог: http://donat-13.livejournal.com/
    последнее сообщение автора, датированное маем 2014 года озаглавлено как «вся твоя жизнь в нескольких абзацах». А до этого этот автор в заголовке своего блога писал «Будущее России создается здесь».
    Бессмысленность бытия, бессмысленность познания бытия могут быть очевидны, главное не задумываться и отвлекаться на что-то от этих мыслей. Можно отвлекаться от этих мыслей «бухлом и бабами», иногда приходится отвлекаться от этих мыслей деятельностью по добыче пропитания (самый эффективный способ). Но когда вопрос пропитания не стоит и делать нечего, голова может начать думать и понять бренность всего.
    К счастью, у вѣдьмака-программиста, судя по блогу денег пока нет и ему приходится на всем экономить.
    Но в чем причина того, что он так мало пишет в блоге? У него много дел во внешнем мире (работа, борьба за выживание) или же у него нет вдохновения и иссякли идеи?
    Читатели данного блога с нетерпением ждут ответа на данный вопрос и для них он имеет большой смысл даже в масштабах Вселенной. Но ещё больше они ждут новых статей)))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *