Руководства, Инструкции, Бланки

Node Js Руководство img-1

Node Js Руководство

Рейтинг: 4.4/5.0 (1636 проголосовавших)

Категория: Руководства

Описание

Отличное руководство для начинающих по

node.js » Отличное руководство для начинающих по Node.js Руководства по Node.js


На днях наткнулся на отличное руководство по node.js для начинающих.
По ссылочке вы найдете два руководста, одно для начального ознакомления с nodejs, а второе попродвинутее и описывает процесс создания простого приложения с использованием npm, express, expresso, mongodb, mongoose, jade, jQuery UI.
Вообщем очень советую, мне понравилось.

Express - синатраподобный и один из самых популярный фреймворков для nodejs, активно развивается. Будьте внимательны, для express требуется версия nodejs 4.9, не больше, так как API node очень часто меняется. Устанавливайте из исходников конкретную версию.
Expresso - фреймворк для unit-тестирования.
MongoDB - документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Шикарно работать с этой базой с помощью nodejs, данные можно хранить в JSON.
Mongoose - ORM для работы с MongoDB.
Jade - шаблонизатор для node.

Занес в закладки :)

Авторизуйтесь. пожалуйста, чтобы оставлять комментарии. Первый раз на сайте?

askdev.ru — это социальный сайт вопросов и ответов для IT-специалистов: программистов, веб-дизайнеров, системных администраторов.
Как stackoverflow.com, только на русском.

Другие статьи

Руководство для начинающих в

Руководство для начинающих в Node.js


Автором было замечено множество комментариев в духе “я скачал/скачала Node, и что теперь?”. Этот урок отвечает на данный вопрос и объясняет новичку, с чего начать.

Что такое Node.js?

Очень много путаницы у новичков из-за непонимания того, что такое Node.js. И даже описание с официального сайта не помощник.

Важную вещь, которую нужно осознать — Node не является веб-сервером. Сама по себе платформа ничего не делает. Она не работает как Apache. Нет конфигурационных файлов, в которых она указывает вам на HTML-файлы. Если вы хотите, чтобы платформа была HTTP-сервером, вам придётся написать HTTP-сервер (с помощью встроенных библиотек).

Node.js — это просто другой способ выполнять код на вашем компьютере. Это среда выполнения языка JavaScript.

Устанавливаем Node Я установил, и что теперь?

После установки у вас появилась новая команда в командной строке “node”. Вы можете использовать Node двумя способами.

Первый — без аргументов: данная команда откроет интерактивный режим в командной строке, где вы можете исполнять код JavaScript.

$ node > console.log(‘Hello World’); Hello World undefined


В этом примере я просто набрал “console.log(‘Hello World’);” и нажал на Enter. Node начнет выполнять, и мы увидим наше сообщение. Также он напишет “undefined”, потому что печатает возвращаемое значение, и console.log не возвращает ничего. - Другой способ использования Node.js — это создание файла Javascript.

hello.js

И сохраняем его в директорию, из которой будем запускать этот файл. Чтобы перейти достаточно в командной строке написать cd полное_название_директории (ну или можно использовать относительную адресацию, о которой можно почитать здесь .

Запускаем в командной строке:


В данном случае мы переместили сообщение файла console.log и отправили этот файл команде node как аргумент. Node запускает код JavaScript в файле и распечатывает “Hello World”.

Файлы ввода/вывода с node.js

Запуск чистого JavaScript — это здорово, но не очень полезно. Поэтому в Node.js есть огромное количество библиотек (модулей) для того, чтобы делать реальные вещи. В данном примере мы откроем файл с записями и будем его обрабатывать.

example_log.txt

Что означает этот файл, не так важно, но нужно знать, что каждая запись содержит дату, букву и значение. Мы хотим соотнести каждую букву с соответствующим значением.

Нам нужно считать содержание файла.

my_parser.js

К счастью, Node.js сильно облегчает обработку содержания файла с помощью встроенного модуля filesystem (fs). Модуль fs имеет функцию readFile, которая берёт путь к файлу и обратный вызов. Обратный вызов будет исполнен, когда файл будет полностью прочитан. Данные файла попадают в форме типа Buffer. что является набором битов. Мы можем конвертировать в строку с помощью функции toString()

Теперь добавим парсировщик (он написан на чистом JavaScript).

my_parser.js

Когда файл будет аргументом команды node, результат распечатается, и будет осуществлён выход.


Асинхронные вызовы в node.js

Как вы заметили в прошлом примере, для Node.js характерно использование асинхронных вызовов. По существу вы пишете, что нужно делать, и когда это будет сделано, будет вызван обратный вызов, потому что node.js однопоточен. Пока вы ждёте запуска обратного вызова, Node.js может уйти и делать другие вещи вместо блокировки до завершения запроса.

Это особенно важно для веб-серверов. Довольно характерно для современных веб-приложений иметь доступ к базам данных. Пока вы ждёте возвращения результата от базы данных, Node может обрабатывать больше запросов. Это позволяет справляться с тысячами параллельных запросов с маленькими накладными расходами по сравнению с созданием отдельного потока для каждого соединения.

Создание веб-сервера с помощью node.js

Как было уже сказано, Node ничего не может делать сам по себе. Один из встроенных модулей позволяет легко создать простой HTTP сервер. пример его использования приведен на главной странице официального сайта .

mywebserver.js

Ещё раз: это базовый веб-сервер, а не сервер с полным функционалом. Он не может обслуживать картинки или HTML-файлы. На самом деле, какой бы вы ни отправили запрос, он возвратит “Hello World”. Однако, вы можете запустить этот скрипт, перейти по ссылке http://localhost:8080 в своем браузере и увидеть этот текст.

Вы уже могли заметить, что ваше приложение на node.js больше не останавливается. Всё потому, что вы создали веб-сервер, и ваше приложение на node.js отвечает на запросы до тех пор, пока вы сами его не остановите.

Если вы хотите сделать веб-сервер с полной функциональностью, вам придётся проделать некоторый объем работы: нужно будет проверить все запросы, считать подходящие файлы и отправить вывод обратно. Есть и хорошие новости. Люди уже проделали эту тяжелую работу за вас.

Модуль Express для node.js

Express — это фреймворк, который облегчит создание большинства обычных сайтов. Сперва вам будет необходимо установить его. Вместе с командой node у вас будет доступ к команде “npm”. Этот инструмент даёт доступ к огромному количеству модулей, созданных сообществом, в том числе и Express.

Когда вы установите модуль, он будет положен в папку node_modules в директории вашего приложения. Теперь вы сможете использовать его функциональность так, как будто он встроен.

Давайте создадим базовый статический сервер с использованием Express.

mystaticfile_server.js

Теперь у вас есть довольно умелый статический файловый сервер. Всё, что вы положили в папку public, может быть запрошено и показано браузером: HTML, картинки, почти всё, что угодно. Так, например, если вы положите картинку под названием “my_image.png” внутрь папки public, вы можете открыть картинку прямо в браузере, перейдя по ссылке http://localhost:8080/my_image.png. Конечно, Express имеет довольно обширную функциональность, и вы можете изучить её в ходе разработки.

NPM

Мы чуть-чуть затронули NPM в предыдущей секции, но мы хотели бы подчеркнуть, как важен этот инструмент при обычной разработке в Node.js. Тысячи модулей доступны для решения почти всех типичных проблем, с которыми вы, вероятно, можете столкнуться. Помните, что стоит проверить NPM прежде, чем изобретать велосипед. Для типичного приложения на node.js характерно иметь множество подключенных модулей.

В предыдущем примере мы вручную установили Express. Если у вас много подключенных библиотек, устанавливать их все вряд ли будет хорошей затеей. Поэтому npm использует файл package.json.

package.json

Файл package.json содержит обзор вашего приложения. Здесь много доступных полей, но представлен необходимый минимум. Секция “dependency” описывает название и версию модулей, которые вы бы хотели установить. В данном случае мы принимаем любую версию Express.3.3. В данной секции вы можете перечислить столько библиотек, сколько вам угодно.

Теперь вместо того, чтобы устанавливать каждую библиотеку отдельно, мы можем запустить одну команду и установить всё необходимое одним махом.

Когда вы запустите команду, npm будет искать в текущей папке файл package.json. Если найдет, то установит каждую библиотеку из списка.

Организация кода в node.js

До сих пор мы использовали один файл, но так очень тяжело обслуживать проект. В большинстве приложений ваш код будет находиться в нескольких файлах. Здесь нет стандартной или принудительной организации того, какие файлы куда идут. Это не Rails. Вы делаете то, что вам хочется.

Давайте реорганизуем скрипт, обрабатывающий файл с записями. Впоследствии будет намного легче тестировать и обслуживать, если мы поместим логику разбора в отдельный файл.

parser.js

То, что мы сделали, было созданием нового файла, содержащего логику для обработки записей. Это только стандартный код JavaScript, и существует множество способов внедрить этот код. Мы выбрали то, как определить новый объект JavaScript, и его легко модульно протестировать.

Важной строчкой является “module.exports”. Это пояснение для Node, что вы экспортируете из этого файла. В данном случае я экспортирую конструктор, поэтому пользователи могут создавать экземпляры моего объекта типа Parser. Вы можете экспортировать, что захотите.

Файлы включены точно так же, как и модули, с одной разницей: вы предоставляете путь к файлу вместо имени. Расширение .js подразумевает, что вы можете оставить привычку писать расширение в конце, если хотите.

Так как мы экспортировали конструктор, то это то, что будет возвращено из запроса. Теперь мы можем создавать экземпляры объектов типа Parser и использовать их.

Вывод

Надеемся, что этот урок был мостом между установкой Node.js и вашем первым приложением. Node.js — очень мощная и гибкая технология, с помощью которой можно решить широкий круг проблем.

Мы хотим напомнить, что использование Node.js ограничено только вашей фантазией. Библиотеки ядра очень аккуратно разработаны и предоставляют любые инструменты для построения приложения. Скомбинировав все модули, доступные в npm, вы можете удивиться, насколько быстро можно строить крайне трудные и настолько же интересные приложения.

Поделиться статьей

Node js для начинающих pdf - Руководство для начинающих по node js от felixa

В этой статье я расскажу об основных принципах node. Js, его плюсах и минусах и покажу как начать разработку. Это всё, что можно сказать про обработку post-данных в рамках учебника для начинающих. Js для начинающих научитесь создавать полномасштабные веб-приложения с серверными javascript.

Js программная платформа, основанная на движке v8 (транслирующем javascript в машинный код), превращающая javascript из узкоспециал. Node js раковая опухоль хабрахабр. Для ее чтения желательно знакомство хотя бы с основами javascript и веб-разработки. Издание предназначено как для начинающих пользователей фреймворка, так и для опытных пользователей spring, желающих задействовать новые возможности версии 3. Руководство для начинающих по node.

63941542ВООБЩЕ НеПаШШеееТ! Хд! Как не питался. нельзя даже установить, пишет одно и тоже ^An error occurred while decompressing: Archive header is corrupt! Unarc.dll returned an error code: -14

Миллион раз отвечал - не работает игра - значит кривой репак. Скачайте другой, с более новой версией игры. И не будет проблем.

57177826Игра запускается нормально?[/qпанелька какая то открывается и все игра не робит

Посоветуйте книгу для начинающего node. Посоветуйте книгу для начинающего node. Полезно читать и в оригинале и в переработаннойпереведенной версии, для начинающих разжеванный текст снижает порог входа и они могут начать работу не углубляясь в тонкости и детали на иностранном. Org можно скачать инсталлятор для windows или os x. Для linux можно использовать любой пакетный менеджер.

Node js для начинающих javascript временно нет

Для тех кто подумывает о том, чтобы взять кредит, рекомендуем сайт acredo. Разумеется, у express намного больше возможностей, но их вы можете открыть для себя, продолжив изучение самостоятельно. Руководство по node js для начинающих. Делимся опытом разработки на node. 13 просмотров02 - nodejs работа с mysql через pool.

Зайди сюда:Скачай установщик обновления DirectXОбнови дрова на видюху.

Дрова и директ вроде как новые стоят, видюха у меня по правде говоря слабенькая, но по канонам жанра эта игра должна пойти.

Выделил красным квадратом надпись, которая малёк меня смутила, тоже не особо знаю её значения.

Node js википедия

Что такое? С чего начать изучать

Thinking Что такое Node.js? С чего начать изучать Node.js

В последнее время очень много разговоров вокруг этой новой модной трендовой технологии в мире веб-разработки. Что же такое на самом деле Node.js и почему он стал столь популярным за короткий термин? Стоит ли его вообще изучать и, если все таки стоит, то из чего начать? Кстати, для некоторых Node.js кажется чем-то сложным и недоступным. Давайте вместе найдём ответы на эти вопросы в этом посте. Итак, начинаем.


Что такое Node.js. Это не веб-сервер. Он сам по себе абсолютно ничего не делает. Это не Apache и не Nginx. Он не содержит каких-то config-файлов. Самое главное — это не язык программирования. Так, со всеми «не» вроде бы разобрались. Идём дальше. Давайте наконец-то дадим определение этому Node.js. Node.js — это среда для выполнения вашего JavaScript кода, это просто ещё один способ выполнять код на вашем компьютере. И всё? Спросите вы. И всё. Отвечу я.

В этом абзаце я бы хотел ещё больше внести ясности в вышеописанное предложение. Давайте-ка обратимся за помощью к старой доброй Википедии .

Node или Node.js — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения.

Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript -кода. Node.js применяется преимущественно на сервере. В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.

Хух. Надеюсь что-то стало понятно Если не понятно, советую ещё раз перечитать описание. Идём дальше.

node processing model

Официальный сайт находится по адресу nodejs.org . там же вы сможете найти установочные файлы. Установить Node.js достаточно просто, поверьте Набор библиотек (модулей), которые вы можете использовать, можете найти вот здесь . Давайте сразу вставим кусок кода, пример всем известной фразы «Hello, world! «, которая создастся и запустится после инициализации HTTP-сервера на Node.js:

В первую очередь следует иметь в виду, что в Node.js функции базовых модулей асинхронны. Это означает, что функции ноды не блокируют поток, а исполняются в фоновом режиме. Отсюда сразу возникает понятие callback-функции — процедуры, которая выполняется после завершения исполнения кода в потоке. Node.js прекрасно показывает себя в задачах с большим числом операций ввода/вывода. Например чтение файлов, запись в БД.

Такс, давайте перейдем к полезным ресурсам, которые, по-моему мнению, будут очень полезны тем, кто начал изучать Node.js .

1) Руководство для начинающих по Node.js от Felix’a (ru) — вся нужная информация о том, как установить, как запустить первую программу и т. п. находится на одной странице;

2) Node.js для начинающих (ru) — аналогичный вышеуказанному учебник-одностраничник, но более развёрнут и более обширный, включая примеры кода;

3) Node.js модули, о которых вы должны знать (ru) — набор часто-используемых модулей Node.js ;

4) Разработка высокопроизводительных сервисов на Node.js (ru) — из поста вам должно быть стать понятно, где и как нужно использовать Node.js. если вы до сих пор не совсем это понимаете.

1) Русскоязычное сообщество Node.js (ru) — форум;

2) Ветка на Stackoverflow (en) — можете задать вопросы и быстро получить ответы по интересующим вас моментам, связанным с Node.js.

NodeSchool (en) — самый популярный ресурс по интерактивному изучению. Процесс обучения примерно такой: вы выбираете урок, и, следуя инструкциям, выполняете задания (пишете код). Если все нормально — идете дальше.

learn.javascript.ru/nodejs-screencast — здесь собраны хорошие скринкасты по изучению Node.js .

1) NodeJS Cheat Sheet (en) — шпаргалка по существующим функциям, которая рабита по разделам и расположена на одной странице;

2) Node.js — раковая опухоль (ru) — уже старая (2011 год), но достаточно интересная статья (перевод) на Habrahabr;

3) Node.js tutorial for beginners — an introduction to Node.js (en) — хорошее 20-минутное видео на YouTube;

4) Introduction to Node.js — SlideShare (en) — хорошая презентация на SlideShare;

5) Хаб на Habraharb (ru) — список статей по Node.js на популярном блоге.

Такс… Ну вроде бы всё Осталось пожелать вам успехов в освоении этой новой технологии. Хотел бы напоследок дать один совет: для начала определитесь действительно ли Node.js — это именно тот инструмент, которым лучше всего будет решена ваша задача. Кстати, недавно я писал о том, с чего изучать AngularJS . загляните и туда, если будет интересно.

Post navigation

Венчурные инвестиции vs кредит

Организация работы и базы данных MongoDB

Размещение серверов в надежных дата-центрах Европы. Откройте облачный VPS/VDS сервер на быстрых SSD за 1 минуту!

Лучший хостинг:
- оградит данные от нежелательного доступа в охраняемом европейском ЦОДе
- примет оплату хоть в bitcoin.
- позволит поставить свой дистрибутив

- защита от DDos-атак
- бесплатный backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Поддержим на русском языке 24/7/365 Работаем с юрлицами и физлицами. Вам прямо сейчас нужно 24 ядра и 72 Gb RAM. Пожалуйста!

Наши выгодные тарифы докажут, что дешевый хостинг вы еще не знали!

Минутное дело: выберите конфигурацию, оплатите и CMS на VPS готова.
Money Back – 30 дней!

Банковскими картами, электронной валютой, через терминалы Qiwi, Webmoney, PayPal, Новоплат и др.

Задайте вопрос в службу поддержки 24/7/365

Найдите ответы в нашей базе и познакомьтесь с рекомендациями

Ubuntu. VPS

В данном руководстве показано, как организовать взаимодействие Node.js и базы данных MongoDB; также статья охватывает базовое управление данными.

Для выполнения руководства понадобятся следующие компоненты:

  • виртуальный выделенный сервер Ubuntu 12.04 x32
  • система управления базами данных (СУБД) MongoDB v2.4.6
  • программная платформа Node.js v0.10.20
  • драйвер Node.js (драйвер для взаимодействия MongoDB и Node.js)
Кратко о MongoDB

MongoDB – это открытая документо-ориентированная система управления базами данных, которая обеспечивает высокую производительность, высокую доступность и простое масштабирование.

Примечание. пользователи, которые ранее не сталкивались с установкой и использованием MongoDB, могут найти полезную информацию в руководстве «Установка MongoDB на сервер Ubuntu 12.04 ».

Убедитесь, что процесс MongoDB запущен.

ps -ef | grep mongo

Результат выглядит примерно так:

mongodb 1307 1 0 02:27. 00:00:01 /usr/bin/mongod --config /etc/mongodb.conf

Если же процесс не запущен, выполните следующую команду в каталоге bin MongoDB:

С MongoDB поставляется консольный клиент, который можно запустить при помощи команды:

На экране появится примерно такой результат:

MongoDB shell version: 2.4.4
connecting to: test
Server has startup warnings:
Mon Oct 7 20:40:35.209 [initandlisten]
Mon Oct 7 20:40:35.209 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

Чтобы получить список существующих баз данных, используйте команду:

Чтобы узнать, как БД является текущей, используйте:

Для переключения между базами данных используется команда use, для просмотра таблиц БД – команда show collections.

Примечание. в MongoDB таблицы называются collections.

К примеру, чтобы перейти к базе данных по имени test и просмотреть ее содержимое, нужно запустить:

use test
show collections

Ниже приведен краткий список команд, которые можно использовать в консольном клиенте; чтобы получить полный список команд, наберите help.

show dbs #show database names
show collections #show collections in current database
show users # show users in current database
show profile # show most recent system.profile entries with time >= 1ms
show logs # show the accessible logger names
show log [name] # prints out the last segment of log in memory, 'global' is default
use <db_name> # set current database
db.foo.find() # list objects in collection foo
db.foo.find( < a. 1 > ) #list objects in foo where a == 1
it #result of the last line evaluated; use to further iterate
exit #quit the mongo shell

Краткий обзор Node.js

Node.js – это разработанная в JavaScript программная платформа для простого построения быстрых и масштабируемых сетевых приложений. Node.js использует событийно-управляемую модель неблокируемого ввода-вывода. Эта легкая и продуктивная платформа идеально подходит для информационно ёмких приложений реального времени, работающих на распределенных устройствах.

Примечание. инструкции по установке Node.js можно найти в данном руководстве .

Убедитесь в том, что Node.js запущен:

Если Node.js запущен, на экране появится версия Node.js.

Драйвер Node.js

Это написанный на чистом JavaScript официальный драйвер Node.js для MongoDB, предоставляющий родной интерфейс Node.js.

Для установки драйвера используйте менеджер пакетов Node – npm:

npm install mongodb

Подключение MongoDB и Node.js. Управление данными

Теперь нужно написать код для подключения приложения Node.js к MongoDB. Данный раздел охватывает три процедуры: подключение, запись и чтение из базы данных.

Чтобы иметь возможность выполнить код, нужно создать новый файл по имени app.js. Затем откройте его в удобном текстовом редакторе и внесите следующий блок кода.

var MongoClient = require('mongodb').MongoClient
. format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function (err, db) <
if (err) <
throw err;
> else <
console.log("successfully connected to the database");
>
db.close();
>);

Выполните файл app.js, набрав следующую команду:

В результате на экране появится строка:

successfully connected to the database

Теперь добавьте код, который будет вносить данные в новую таблицу test_insert.

var MongoClient = require('mongodb').MongoClient
. format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) <
if(err) throw err;
var collection = db.collection('test_insert');
collection.insert(, function(err, docs) <
collection.count(function(err, count) <
console.log(format("count = %s", count));
db.close();
>);
>);
>);

Затем добавьте блок кода, который поместит данные в БД.

var MongoClient = require('mongodb').MongoClient
. format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) <
if(err) throw err;
var collection = db.collection('test_insert');
collection.insert(, function(err, docs) <
collection.count(function(err, count) <
console.log(format("count = %s", count));
>);
>);
// Locate all the entries using find
collection.find().toArray(function(err, results) <
console.dir(results);
// Let's close the db
db.close();
>);
>);

Готово! Теперь можно подключаться к БД, а также вносить и читать данные из базы данных MongoDB с помощью приложения Node.js.

Дополнительные ссылки Комментарии (2)

ясно, понятно, просто. Спасибо, ребят

Подскажите пожалуйста, в чём дело, у меня выдаётся ошибка:

/media/fitzgeraldfox/SP PHD U3/Практика/nodetest/node_modules/mongodb/lib/mongo_client.js:225
throw err
^
MongoError: failed to connect to server [127.0.0.1:27017] on first connect
at null. (/media/fitzgeraldfox/SP PHD U3/Практика/nodetest/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:313:35)
at emit (events.js:95:17)
at null. (/media/fitzgeraldfox/SP PHD U3/Практика/nodetest/node_modules/mongodb/node_modules/mongodb-core/lib/connection/pool.js:260:12)
at g (events.js:180:16)
at emit (events.js:98:17)
at Socket. (/media/fitzgeraldfox/SP PHD U3/Практика/nodetest/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:162:49)
at Socket.g (events.js:180:16)
at Socket.emit (events.js:95:17)
at net.js:441:14
at process._tickCallback (node.js:458:13)

вот app.js:

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');
var MongoClient = require('mongodb').MongoClient
. format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function (err, db) <
if (err) <
throw err;
> else <
console.log("successfully connected to the database");
>
db.close();
>);
var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded(< extended: false >));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) <
var err = new Error('Not Found');
err.status = 404;
next(err);
>);

// development error handler
// will print stacktrace
if (app.get('env') === 'development') <
app.use(function(err, req, res, next) <
res.status(err.status || 500);
res.render('error', <
message: err.message,
error: err
>);
>);
>

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) <
res.status(err.status || 500);
res.render('error', <
message: err.message,
error: <>
>);
>);

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

Хочу изучить

Хочу изучить Node.js

Я также хочу предостеречь, сообщив о том, что многие источники устаревают стремительно, оттого что авторы их не следят за эволюцией Node — хотя, казалось бы, для такого слежения достаточно читать blog.nodejs.org.

Прежде всего, для того, чтобы использовать Node.js, необходимо иметь под рукой работающую *nix-подобную операционную систему. Рекомендуется Linux или OSX, но также могут подойти FreeBSD или cygwin (под windows). В настоящее время ведутся работы над портированием Node.js под windows, но пока они не доведены до стабильного состояния.
Портирование Node.js под Windows завершилось успехом в ноябре 2011 года, сейчас май 2012 года — стало быть, этот абзац устарел на полгода.

Хорошо, приму во внимание! Спасибо!

>>Портирование Node.js под Windows завершилось успехом в ноябре 2011 года
Сам ноде да. а вот npm -инсталлер до сих пор требует кучу странных зависимостей типо Питона устаревшей версии, к-й не хочет работать без старой версии дотнета
в общем нереально под виндой пользоваться.
Надо поднимать виртуалку с линуксом

Что такое node

Что такое node. js.

Зияудин Абукаров Ученик (21), закрыт 3 года назад

Я не имею представление о том, что это такое. Погуглил, почитал немного, но толком и не понял. Как может JS работать на сервере и что он там делает? Он заменяет apache? Мне сказали, что реализация диалогов на сайте лучше делать при помощи node, какая разница? Ведь если на обычном JS или на node, то все равно к БД отправляются те же самые запросы. А на счет нагрузки, то JS работает ведь на стороне пользователя. JS только обращается к php файлу и с этого файла происходят запросы к БД. Помогите разобраться )))))))))))

Капитан Гугл Искусственный Интеллект (136120) 3 года назад

>Я не имею представление о том, что это такое.
Погугли
>Погуглил, почитал немного, но толком и не понял
Уже лучше. Значит, на вопрос "что это такое" ответ уже есть.
>Как может JS работать на сервере
Так же, как и любой другой ЯП. Как php работает на сервере, ты понимаешь? А теперь в описании этого процесса замени php на JS.
>Он заменяет apache.
А php заменяет apache?
--
Смотри. Есть скрипты пользовательской стороны и скрипты серверной стороны. На каких они языках, не важно, пока сервер и пользователь эти языки понимают, каждый свой. Самая популярная пара - JS у пользователя и PHP на сервере, но есть еще куча других вариантов. Один из вариантов для сервера - node.js, обеспечивающий работу JS на сервере; естественно, эти скрипты выполняют работу сервера - т. е. не двигают рамочки, а формируют вывод html.

На всякий случай, чтобы убедиться, что понимаешь про серверные скрипты, прочитай http://phpfaq.ru/na_tanke

Metotron Оракул (81987) 3 года назад

Спроси на forum.htmlbook.ru, есть у нас там специалист

Николай Веселуха Высший разум (176469) 3 года назад

Pure function Просветленный (22926) 3 года назад

Это серверный однопоточный джаваскрипт-движок на событиях (libev), состоящий из гугловского якобы высокопроизводительного JIT-компилятора V8 и библиотеки асинхронного ввода-вывода к нему. В библиотеке присутствует HTTP-сервер, что позволяет получить что-то в духе эрланговского MochiWeb и питоновского TornadoWeb, но позволяющее писать клиентский (браузерный/AJAX) и серверный ('cкрипты') код на одном языке. Ну и конечно геморрой в стиле mod_perl + POE вам обеспечен. Тем не менее, говорят, это прогрессивно и круто. (Шутка)

Для особо одарённых, уточняю. Вышеперечисленное включает: вонючую, но встроенную вариацию memcached; невозможность без плясок с бубном, не снившихся питоновцам, задействовать более одного ядра; новые уязвимости из-за паразитной передачи данных в параллельно исполняющийся запрос; падучесть всей VM вместе с вашими фронт-эндом и бэк-эндом в стиле легендарной DOS при зацикливании или непойманном исключении в любом из обработчиков событий; возможность неправильно реализовать HTTP; феерический пул потоков для исполнения в нём unlink(); развесистые монады при вводе-выводе, не снившиеся хаскеллистам; ну и, конечно же, необходимость писать юнит-тесты на каждый чих, потому что только джедаи в состоянии безошибочно разыменовать хеш массивов хешей хешей массивов, а а компилятор попытки присвоить ёжику зайчика не ловит.

Но и это ещё не всё! Для затягивания сроков и удорожания разработки система включает: иллюзию эрланговской изоляции посредством порождения дочерних песочниц в рамках одного потока; циклы перебора байтиков в буфере в стиле Паскаля с неявным алиасингом; отсутствие возможности читать файлы построчно.

Node js руководство

Node.js Node.JS Parent Process ID

Is it possible to get the parent process-id using Node.JS? I would like to detect if the parent is killed or fails in such a way that it cannot notify the child. If this happens, the parent process id of the child should become 1.

This would be preferable to requiring the parent to periodically send a keep-alive signal and also preferable to running the ps command.

  • You can use pid-file. Something like that
Библиотеки Socket.IO

Socket.IO is a Node.JS project that makes WebSockets and realtime possible in all browsers. It also enhances WebSockets by providing built-in multiplexing, horizontal scalability, automatic JSON encoding/decoding, and more.

First, require socket.io:

Next, attach it to a HTTP/HTTPS server. If you're using the fantastic express web framework:


Finally, load it from the client side code:

For more thorough examples, look at the examples/ directory.

Sending and receiving events.

Socket.IO allows you to emit and receive custom events. Besides connect, message and disconnect, you can emit custom events:

// note, io.listen(<port>) will create a http server for you var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) <

>); Storing data associated to a client

Sometimes it's necessary to store data associated with a client that's necessary for the duration of the session.

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) <

</script> Restricting yourself to a namespace

If you have control over all the messages and events emitted for a particular application, using the default / namespace works.

If you want to leverage 3rd-party code, or produce code to share with others, socket.io provides a way of namespacing a socket.

This has the benefit of multiplexing a single connection. Instead of socket.io using two WebSocket connections, it'll use one.

The following example defines a socket that listens on '/chat' and one for '/news':

var io = require('socket.io').listen(80);

</script> Sending volatile messages.

Sometimes certain messages can be dropped. Let's say you have an app that shows realtime tweets for the keyword bieber.

If a certain client is not ready to receive messages (because of network slowness or other issues, or because he's connected through long polling and is in the middle of a request-response cycle), if he doesn't receive ALL the tweets related to bieber your application won't suffer.

In that case, you might want to send those messages as volatile messages.

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) <

In the client side, messages are received the same way whether they're volatile or not.

Sometimes, you might want to get a callback when the client confirmed the message reception.

To do this, simply pass a function as the last parameter of .send or .emit. What's more, when you use .emit, the acknowledgement is done by you, which means you can also pass data along:

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) <

</script> Broadcasting messages

To broadcast, simply add a broadcast flag to emit and send method calls. Broadcasting means sending a message to everyone else except for the socket that starts it.

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) <

Sometimes you want to put certain sockets in the same room, so that it's easy to broadcast to all of them together.

Think of this as built-in channels for sockets. Sockets join and leave rooms in each socket.

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) <

>); Using it just as a cross-browser WebSocket

If you just want the WebSocket semantics, you can do that too. Simply leverage send and listen on the message event:

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) <

</script> Changing configuration

Configuration in socket.io is TJ-style:

var io = require('socket.io').listen(80);

Установить npm install socket.io

Использование совместно с Express 3 web framework

Express 3 requires that you instantiate a `http.Server` to attach socket.io to first:

Использование совместно с Express web framework

You can serve normal pages and AJAX requests with Express, and attach your socket.io server

For this example, simply run `npm install socket.io express`

Отправка и прием событий.

Socket.IO позволяет обрабатывать и отправлять произвольные события. Кроме `connect`, `message` and `disconnect`, можно создавать произвольные события:

Прикрепление данных, ассоциированных с клиентом

Иногда необходимо хранить данные, ассоциированные с клиентом, что необходимо для продолжении (duration) сессии.

Оборачивание себя (своего кода) в namespace.

Если вы контролируете все сообщения и события в коде, используйте namespace works по умолчанию (default namespace works) Если вы хотите использовать сторонний код или предоставлять код другим, socket.io предоставляет возможность использования именованных сокетов (namespacing a socket.)

Это полезно при мультиплексировании соединений. Вместо использования двух соединений WebSocket, будет использовано одно.

Отправка летучих (volatile) сообщений.

Иногда некоторые сообщения могут быть удалены (отброшены). Скажем, у вас есть приложение, которое показывает в реальном времени количество твитов по ключевому слову Бибер.

Если определенный клиент не готов к приему сообщений (из-за медлительности сети или других вопросов, или потому, что он связан через длинные голосования и находится в середине запрос-ответ цикла), если он не получит всех твитов, связанных с Бибер, то ваша заявка не будет страдать.

В этом случае, вы можете отправить эти сообщения, как летучие сообщений.

Отправка и получение данных (подтверждения)

Иногда, вы можете получить обратный вызов, когда клиент подтвердил прием сообщения.

Чтобы сделать это, просто передать функцию в качестве последнего параметра `.send` или `.emit`. Более того, когда вы используете `.emit`, подтверждение было сделано вами, значит, вы также можете продолжить передавать данные.

To broadcast, simply add a `broadcast` flag to `emit` and `send` method calls. Broadcasting means sending a message to everyone else except for the socket that starts it.

Using it just as a cross-browser WebSocket.

If you just want the WebSocket semantics, you can do that too. Simply leverage `send` and listen on the `message` event:

Примеры кода Официальная документция