Обновить
64K+

Node.JS *

Среда для запуска JavaScript-приложений

40,72
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

yo n — быстрое начало для нового node.js проекта

Время на прочтение1 мин
Охват и читатели5.2K
Привет, Друзья!

Я просто хотел поделиться с вами простым проектом, который, надеюсь, поможет сохранить несколько минут при создании очередного node.js пакета. Вот все, что сделает проект, после набора в командной строке yo n:

1. Запустит «npm init»
2. На основе ваших ответов из package.json, создаст файл с лицензией, readme, начальный файл и включит тестовый фреймворк.
3. Создаст и опубликует проект на GitHub'e.

А вот и видео всего описанного выше в действии:



Исходники на гитхабе: github.com/anvaka/generator-n

Надеюсь, пригодится :)!

PS: «yo n» в два раза короче, чем «npm init»

Переменное количество аргументов: проблемы и решения

Время на прочтение4 мин
Охват и читатели16K
Речь пойдет о написании на JavaScript функций с переменным количеством аргументов, возникающих в процессе проблемах и способах решения этих проблем.
Читать дальше →

Простейший способ бесплатно захостить статику на Heroku

Время на прочтение2 мин
Охват и читатели16K
image
Около полутора лет назад возникла необходимость захостить небольшой статический сайт в три страницы и пару десятков. В тот момент была активна подписка MSDN и самым простым решением оказалось создать WebRole прямо в студии, положить туда статику и делать деплоймент, используя стандартные возможности Visual Studio. Прошел год, подписка кончилась, прогноз платежа за использование ресурсов Azure составил 5000 рублей в месяц. Мне показалось, что это перебор за трехстраничный сайт и начался поиск альтернативы. Критерии: бесплатность, простота конфигурирования и возможность просто перенести сайт, как он есть без доделок.
Читать дальше →

Призраки в облаках или установка Ghost в Windows Azure

Время на прочтение8 мин
Охват и читатели4.7K
Сегодня многие блоггеры считают, что Wordpress стал слишком перегружен лишним функционалом и превращается из платформы для блогов в полноценную и сложную CMS. Это вовсе не плохо — разнообразие плагинов, модулей и тем, доступных сейчас в сети, позволяет использовать возможности платформы практически для любых целей. Однако у этого разнообразия есть и обратная сторона медали. Нагромождение модулей негативно сказывается на производительности сайта, при том, что даже «чистый» вордпресс не может похвастаться выскокой скоростью работы.

Ghost


Некоторое время назад на сайта стартапов Kickstarter был запущен проект под названием Ghost, слоган которого был «just a blogging platform» (платформа только для блогов). Идея пришлась многим по вкусу и проект собрал почти $200.000, вместо изначальных $25.000. Сейчас проект активно развивается и на официальном сайте уже доступна для скачивания версия 0.3.3.

Меня, как и многих других, очень заинтересовал этот проект. Во-первых, мне нравится минималистичный дизайн. Во-вторых, Wordpress и правда немного избыточен для моих нужд и слегка туповат в работе. А в-третьих, меня завлекло то, что Ghost разрабатывается на Node.js — технология, о которой очень много говорят в последнее время. Я решил попробовать в действии, что же это за «just a blogging platform», и установить его себе в Windows Azure как дополнение к основному блогу.
Читать дальше →

Расширение Node.js Tools для Visual Studio

Время на прочтение4 мин
Охват и читатели28K
Как бы это странно не звучало, но компания Microsoft официально представила расширение Node.js Tools для Visual Studio!

Node.js Tools для Visual StudioРасширение NTVS предназначено для установки в Visual Studio версии 2012 и 2013. Проект имеет довольно занимательную историю своего появления. Несколько поклонников node.js практически одновременно начали разработку своих собственных расширений на базе проекта PTVS с целью создания расширения Node.js Tools для Visual Studio. В то же самое время команда разработчиков PTVS также выполняла работу по интеграции с node.js, попутно объединяя усилия сторонних разработчиков, что в итоге и привело к формированию сообщества проекта. Основные усилия при создании NTVS были приложены командой PTVS при содействии Барта Рида из Red Gate, разработавшего GUI для npm, и Дмитрия Третьякова из Clickberry, выполнившего работы по усовершенствованию отладчика и исправлению дефектов.
Читать дальше →

Встречайте: Node.js Tools for Visual Studio

Время на прочтение1 мин
Охват и читатели14K
Вы думали, что после Python Tools for Visual Studio, Microsoft нечем больше вас удивить на ниве open source? Что ж, попробуем исправить положение: команда PTVS рада представить вам первую альфа-версию своего нового проекта: Node.js Tools for Visual Studio (далее по тексту – NTVS).

Node.js Tools for Visual Studio
Читать дальше →

PhpStorm. Лайфхак: keep-alive automatic upload на коленке

Время на прочтение4 мин
Охват и читатели5.7K
Многие сталкивались с проблемой Automatic Upload в PhpStorm (сюда можно вписать другую IDE с подобной проблемой) при работе на удаленном сервере. Называть ее «проблемой» тоже можно с натяжкой, но тема жива: PhpStorm при заливке измененных файлов каждый раз поднимает новое подключение, что занимает достаточно ощутимое время (у меня уж точно: хостинг-провайдер Hetzner), поэтому приходится ждать несколько секунд прежде чем изменения зальются.

Под катом я расскажу как на коленке набросал скрипт keep-alive подключения с Automatic Upload проекта.

Читать дальше →

WidLib – декларативный js-фреймворк для построения виджетов

Время на прочтение7 мин
Охват и читатели17K
Сегодня я хотел бы анонсировать js-фреймворк, позволяющий создавать диалоговые микро-приложения в несколько строк js-кода, разделяемого между клиентом и сервером.

К сожалению, у автора проекта не хватило мужества довести его до ума. Простите.



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

В отличие от большинства фреймворков, WidLib не претендует на универсальность: он предназначен для быстрого создания многостраничных диалоговых приложений.
Читать дальше →

Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 1

Время на прочтение4 мин
Охват и читатели54K

Введение


Добрый день.
Однажды я приобрёл Raspberry Pi без каких-то на то целей — как только начались упоминания о нём на хабре. Начал бесцельно запускать фтп-сервера, пробовать Node.js и прочие мелкие серверные дела, пока не приобрёл новый автомобиль. Конечно, заниматься тем, что можно найти на просторах интернета вроде дистанционного открытия гаража я не стал — в силу нормального не знания системы Linux и серверных языков программирования. Автомобиль стал мне дорог и возникла идея — поставить малинку в автомобиль с прикрученными к ней USB девайсами: GPS, Web-камера, 3G-модем — для чего и был куплен 2-ой Raspberry.
В этой статье я опишу подготовку: установку Node.JS, настройку OpenVPN и 3G.
Читать дальше →

Как работает basic-авторизация в ExpressJS

Время на прочтение2 мин
Охват и читатели17K
В Express.JS есть встроенный middleware для авторизации. Если очень хочется заблокировать доступ к приложению — достаточно всего лишь добавить одну строчку в сетап express-приложения:
app.use(express.basicAuth('username', 'password'));

Так же middleware поддерживает альтернативный вариант — с коллбэком:
app.use(express.basicAuth(function(user, pass, next) {
  var result = (user === 'testUser' && pass === 'testPass');
  next(null /* error */, result);
}));

А если нужно ограничить доступ только к определенным url'ам — middleware можно использовать не глобально, а только в рамках роутера. То есть так:
var auth = express.basicAuth(function(user, pass, next) {
  var result = (user === 'testUser' && pass === 'testPass');
  next(null, result);
});

app.get('/home', auth, function(req, res) {
  res.send('Hello World');
});

Если не забираться под капот — на этом можно и закончить. Тех же, кто на диаграмме Венна находится между кругами «Мне интересно, что внутри» и «Я не знаю как работает basic авторизация apache», приглашаю под кат.
Читать дальше →

Как работает Passport.js

Время на прочтение4 мин
Охват и читатели123K

PassportJS — это middleware для авторизации под node.js. Passport поддерживает авторизацию с помощью огромного количества сервисов, включая «ВКонтакте» и прочие твиттеры. Список сервисов можно просмотреть здесь. Я хочу немного рассказать о том, как работает этот middleware на примере самой обычной авторизации с помощью логина и пароля.

Для самых нетерпеливых — готовый проект можно посмотреть здесь.
Читать дальше →

Как Groupon мигрировал от монолитного Rails приложения к новой Node.js инфраструктуре

Время на прочтение7 мин
Охват и читатели21K

I-Tier: Расщепление монолита


Недавно мы завершили годовой проект миграции веб-трафика компании Групон в США от монолитного Ruby on Rails приложения к новому стеку Node.js и получили существенные результаты.

С самого начала весь веб-фронтенд американского Групона был единым исходным кодом Ruby. Код фронтенда быстро развивался, что затрудняло его поддержку и усложняло процесс добавления новых фич. В качестве решения проблемы с этом гигантским монолитом мы решили реструктурировать фронтенд посредством его разделения на меньшие, независимые и более простые в управлении части. Основой этого проекта стало разделение монолитного вебсайта на несколько независимых Node.js приложений. Мы также переделали инфраструктуру, чтобы обеспечить совместную работу всех приложений. Результатом стал Interaction Tier (I-Tier).

Вот некоторые из важных моментов этой глобальной архитектурной миграции:

• Страницы на сайте загружаются значительно быстрее

• Наши команды девелоперов могут разрабатывать и добавлять новые фичи быстрее и с меньшей зависимостью от других команд

• Мы можем избежать повторной разработки одних и тех же фич в разных странах, где доступен Групон.

Этот пост является первым из серии постов о том, как мы реструктурировали сайт и какие огромные преимущества мы видим в дальнейшем, которые будут лежать в основе продвижения компании Групон.
Читать дальше →

Продвинутый чат на Node.JS

Время на прочтение6 мин
Охват и читатели83K
Да, в интернете полно реализаций банального чата, но все-же мне они не по душе. Представляю Вам мою реализацию чата, с блекджеком и сами знаете чем.

Итак, сразу ссылка на демо для нетерпеливых.
(Сервер уже уложили)

Особенности


  • Сохранение сообщений в БД
  • Авторизация
  • Команды чата
  • Соединение с сервером по WebSocket

Читать дальше →

Ближайшие события

Derby.js темы для темплейтов

Время на прочтение3 мин
Охват и читатели3.5K
Derby.js предлагает механизм, который позволяет значительно повысить скорость загрузки страницы путем инкапсуляции CSS в HTML код отдаваемый клиенту. В production mode Derby.js минифицирует HTML, CSS, JS. Как указано в документации используются Stylus и/или LESS.
По умолчанию подключается файл: styles/app/index.styl, где мы можем воспользоваться всеми синтаксическими преимуществами которые предоставляет Stylus.
Что делать, если в нашем проекте предусмотрено использование нескольких тем (стилей) для темплейтов?
Подробности

Автоматизация перезагрузки роутера CISCO RVS4000

Время на прочтение4 мин
Охват и читатели6.9K
Так уж случилось, что домашний роутер после двух лет безглючной работы начал время от времени подвисать. Проявлялось это в подвисании WAN порта и отсутствии интернета у всей подсети, LAN работает нормально. Решение оказалось не таким простым, как может показаться сначала.
Читать дальше →

Разработка клиент-серверной инфраструктуры на javascript (часть 2 — сервер и размещение)

Время на прочтение7 мин
Охват и читатели39K
imageЗдравствуйте, в этой статье я расскажу о серверной части и опишу процесс размещения приложения на облачном хостинге openshift.
Читать дальше →

Причины и достоинства третьего байхуистского способа употребления SQLite в Node.js

Время на прочтение3 мин
Охват и читатели8.8K
Постигшие дзэн Пайтона считают, что должен быть один (и, желательно, только один) очевидный способ достигнуть желаемого.

А постигшие список модулей Node.js могут убедиться в том, что создатели этих модулей духовно ближе не к дзэн-буддистам, а к байхуистам к поклонникам движения «Байхуа юньдун» (百花运动), провозглашённого Мао Цзэдуном в 1957 году по мотивам классического китайского стихотворения «пусть расцветают сто цветов, пусть соперничают сто школ», начинающегося словами «бай хуа» («百花», «сто цветов»). Иными словами, модули для Node.js предоставляют, как правило, несколько способов сделать одно и то же, и из них потребитель выбирает тот способ, который более всех пригоден ему.

Но почему не существует такого одного способа, который был бы пригоден для всех?

Ответ на этот вопрос я предлагаю рассмотреть на примере употребления базы данных SQLite.

Читать дальше →

Сравнение библиотек для работы с Memcached на Node.JS

Время на прочтение5 мин
Охват и читатели13K
image
Хочу поделиться проделанной работой по исследованию производительности различных библиотек для работы с memcached в Node.JS. Для исследования были отобраны 4 кандидата.

Краткие описания взяты прямо из источников и приведены в оригинале. Вот получившийся список с версиями и ссылками.

  • mc v1.0.6 — The Memcache Client for Node.js (mc)
  • node-memcache v0.3.0 — A pure-JavaScript memcached library for node. (node-memcache)
  • node-memcached v0.2.6 — Fully featured Memcached client for Node.js (node-memcached)
  • memjs v0.8.0 — MemJS is a pure Node.js client library for using memcache. (memjs)

Читать дальше →

Разработка проекта AppJS прекращена, в дальнейшем пользуйтеся node-webkit

Время на прочтение2 мин
Охват и читатели11K
Чуть больше года назад (1 октября 2012 года) я выложил на Хабрахабре блогозапись «Node.js + Chromium = AppJS: один из перспективных вариантов второго шага эволюции веборазработчика», в которой привёл AppJS в качестве примера такого объединения движков Node.js и Chromium, которое позволяет каждому веборазработчику, употребляя привычные ему по работе технологии (JavaScript, HTML, CSS), сделаться разработчиком приложений с GUI (графическим интерфейсом пользователя), объединяющих в себе выразительные способности браузера Chromium и мощь API Node.

На следующий же день (2 октября 2012 года) во блогозаписи «Node.js + Chromium = node-webkit: ещё более перспективный вариант второго шага эволюции веборазработчика» я указал, что AppJS — не единственный и даже не лучший вариант: node-webkit отличается удобством и бóльшими возможностями API, более обширной документацией, а также обеспечивает запуск ZIP-упакованных приложений.

И что же? — не прошло и тринадцати месяцев, как успех node-webkit сделался очевидным и для разработчиков AppJS. Сегодня во твиттере у AppJS вы можете прочесть о том, что разработка проекта AppJS прекращена, поскольку node-webkit достиг его цели:

[скриншот Twitter]

Читать дальше →

Derby.js Авторизация

Время на прочтение2 мин
Охват и читатели6.7K


Тем временем у Derby появился свой хаб.

Ну а сегодня мы поговорим об авторизации и ограничении доступа к данным. Что лучше использовать everyauth или passport? Сложно ли добавить авторизацию? Как ограничивать доступ к данным? Как разделить приложение для пользователей и админку в рамках одного derby-приложения?


Дак что там про авторизацию?