Знакомство с nodejs

На горизонте появился проект с nodejs на серверной строне. Я давно хотел приступить к изучению этой технолгии и теперь мне совершенно точно не отвертеться. Пожалуй, начну.

Не стану рассказывать о том, как найти nodejs с помощью google, но упомяну те статьи и сайты, которые буду использовать в процессе обучения. Первый поисковый запрос "запуск express на nodejs" привел меня на хабр Web-разработка на node.js и express. Изучаем node.js на практике

Полезная привычка: начал что-то новое - заведи репозиторий на битбакет. Я предпочитаю mercurial из-за большей, по сравнению с git, дружелюбности.

Установка express

npm install -g express

Создание тестового приложения

express test
cd test
npm install

В итоге имеем проект почти на 2 мегабайта и содержащий 730 файлов. Запуск приложения

node app

На этом полезная часть хабра-статьи для меня закончилась, оставив на последок ссылку на книгу Node.js для начинающих. Во второй части статьи Web разработка на node.js и express. Глава 2 — тестирование приложения автор еще раз рассказывает о создании приложения и ипользовании git, а потом переходит к TDD.

Unit-тесты - это моя мечта. Однаждя я пробовал программировать с их использованием и это было действительно полезно, особенно в те моменты когда требовалось изменить что-то, от чего зависит половина модулей приложения. В моем нынешнем рабочем проекте нет автоматизированных тестов и потому я вынужден придумывать патчи. За два для до релиза, мне не хватает смелости исправить некоторые архитектурные решения, просто потому, что я не могу предсказать, как это скажется на компанентах, написанных моими коллегами.

{
  "name": "application-name",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.2.0",
    "jade": "*"
  },
  "devDependencies": {
    "mocha": "*",
    "should": "*",
    "supertest": "*"
  }
}

После изменения package.json вызываю npm install для загрузки библиотек для тестирования (попробую взять последние версии). Примеры тестов можно найти в статье, на которую я сослался выше, здесь же приведу только команду для их запуска.

node_modules\.bin\_mocha --require should --reporter spec

Следующий шаг - установка mongodb и запуск базы данных

C:\mongodb\bin\mongod.exe --dbpath C:\mongodb\data

Порт БД - 27017, Веб-интерфейс - 28017

Несколько команд для работы с MongoDB в качевтве сервиса Windows

C:\mongodb\bin\mongod.exe --config C:\mongodb\mongod.cfg --install
net start MongoDB
net stop MongoDB
C:\mongodb\bin\mongod.exe --remove

Пытаюсь перейти от псевдотестов к чему-нибудь более реальному. Пока получается, что-то такое - код:

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
module.exports = db;

Сам тест:

var db = require(__dirname + '/../db');
describe('Database', function()
{
  describe('connection', function()
  {
    it('should opened w/o errors', function(done)
    {
      db.once('open', function callback ()
      {
        done();
      });
    })
  })
});

Вызов функции done означает успешное завершение теста, в противном случае будет сгенерировано сообщение об ошибке. Самы простой способ испробовать это на собственном опыте - остановить сервер базы данных. Осталось понять, насколько такой тест может быть полезен, проверят ли он что-то действительно важное или является еще одним сферическим конем?

Подборка библиотек для nodejs

Читайте в блоге

Круглая кнопка на JavaScript.
Использование \K в регулярных выражениях. Игнорирование начальной части совпадения.
Как прочитать .ini-файл из php?

Метки: nodejs express

Комментарии:

Владимир Рыбаков @ 02.05.2013 16:02

Немного переделал движок сайта, а потому хочу проверить, как работают комментарии.
Владимир Рыбаков @ 12.05.2013 10:37

Another comments test

Войдите на сайт, чтобы оставить комментарий