Day 8

Express. Установка

Первым шагом будет установка Express. Выполните следующую команду npm:

npm install --save express

Выполнение npm install установит указанный (-ые) пакет (-ы) в каталог node_ modules. Если вы укажете флаг --save, файл package.json будет обновлен. Поскольку каталог node_modules в любой момент может быть восстановлен с помощью npm, мы не станем сохранять его в нашем репозитории. Чтобы убедиться, что мы не добавили его случайно в репозиторий, создадим файл с именем .gitignore:

# Игнорировать установленные npm пакеты:
node_modules
# Поместите сюда любые другие файлы, которые вы не
# хотите вносить,такие как .DS_Store (OSX), *.bak, etc.

Создадим файл app.js, который будет точкой входа в наш проект. Запишем в него код:

  var express = require('express');
var app = express();
app.set('port', process.env.PORT || 3000);
// пользовательская страница 404
app.use(function(req, res){
        res.type('text/plain');
        res.status(404);
        res.send('404 — Не найдено');
});
// пользовательская страница 500
app.use(function(err, req, res, next){
        console.error(err.stack);
        res.type('text/plain');
        res.status(500);
        res.send('500 — Ошибка сервера');
});
app.listen(app.get('port'), function(){
    console.log( 'Express запущен на http://localhost:' +
      app.get('port') + '; нажмите Ctrl+C для завершения.' );
});

Теперь у вас есть минимальный сервер Express. Можете запустить сервер (node app.js) и перейти на http://localhost:3000. Результат будет неутешительным: вы не предоставили Express никаких маршрутов, так что он просто выдаст вам обобщенную страницу 404, указывающую, что запрошенной страницы не существует.

Добавляем маршруты

Добавим маршруты для домашней страницы и страницы about Перед обработчиком 404 добавляем два новых маршрута:

  app.get('/', function(req, res){
        res.type('text/plain');
        res.send('Main page');
});
app.get('/about', function(req, res){
        res.type('text/plain');
        res.send('About page');
});
// пользовательская страница 404
app.use(function(req, res, next){
        res.type('text/plain');
        res.status(404);
        res.send('404 — Не найдено);
       });

app.get — метод, с помощью которого мы добавляем маршруты. Этот метод принимает два параметра: путь и функцию. Путь — то, что определяет маршрут. Заметьте, что app.get по умолчанию игнорирует регистр и косую черту в конце строки, а также не принимает во внимание строку запроса при выполнении сравнения. Так что маршрут для страницы about будет работать для /about, /About, /about/, /about?foo=bar, /about/?foo=bar и т. п.