Небольшая заметка о том, как установить коннект к mysql из express через db-mysql.

  1. Считаем, что установлены Node.js и npm. А так-же для установки db-mysql необходим пакет libmysqlclient-dev
  2. Устанавливаем Express (подробнее про установку можно посмотреть на сайте фреймвока.)
    # Устанавливаем фреймворк
    npm install -g express
    # Создаем приложение в папке /var/www, переходим
    express /var/www
    cd /var/www
    # Устанавливаем зависимости
    npm install -d
    # Проверяем, что все работает
    # (запускаем, и вводим в браузере localhost:3000, выходим)
    node app.js
  3. Устанавливаем db-mysql (подробности на сайте библиотеки)
    npm install db-mysql
  4. Создаем файл, например, /var/www/db/db.js
    // Подключаем библиотеку
    var mysql = require('db-mysql');
    // создаем объект-менеджер
    exports.dbm = function() {
        var _t = this,
            _log = '';
        _t.config = {
            hostname: 'localhost',
            user: 'user',
            password: 'password',
            database: 'database_name'
        };
        // Создаем объект mysql
        _t.db = new mysql.Database(_t.config);
        // Просто метод для демонстрации
        _t.log = function() { return _t._log; };
        // создаем обертку для соединения
        _t.connect = function() {
            _t.db.connect(function(error) {
                if (error) {
                    _t._log = 'CONNECTION error: ' + error;
                } else {
                    _t._log = 'CONNECTION: OK';
                }
                // пока мы просто подключаемся и отключаемся от базы:
                _t.db.disconnect();
                return console.log(_t._log);
            });
        };
        // Возвращаем объект менеджера
        return _t;
    }
  5. Правим app.js:
    // .... здесь оригинальный код. После строчек:
    var express = require('express');
    var app = module.exports = express.createServer();
    
    // вставляем:
    var dbm = require('./db/db.js').dbm(); // Получаем менеджер
    dbm.connect(); // коннектимся к базе
    
    После этого можно уже проверить, что все работает - достаточно запустить node app.js и в консоли увидим - соединились или нет. Но это неинтересно. Попробуем вывести это сообщение на страницу.
  6. Правим app.js:
    // .... здесь оригинальный код. После строчек:
    app.get('/', function(req, res){
      res.render('index', {
        title: 'Express'
      });
    });
    
    // вставляем:
    app.get('/test', function(req, res){ // определяем новый путь /test
      res.render('dbtest', { // используем новый шаблон
        title: 'DB Test',
        db: dbm.log() // в переменную шаблона 
                      //добавляем результат соединения с сервером
      });
    });
    Остается только создать новый шаблон (views/dbtest.jade)
    h1= title
    p Welcome to #{title}
    p DB: #{db}
    Запускаем node app.js и переходим по адресу: localhost:3000/test

В следующих заметках попробуем выполнить запросы.