MEAN — стек программного обеспечения, предназначенного для разработки веб-приложений c использованием только JavaScript.
Установка
Отдельные составляющие стека требовательны к количеству оперативной памяти, поэтому виртуальная машина потребуется с минимум 1 Гб RAM.
Node.js
Ubuntu, Debian
Для Debian сначала установите утилиту Curl:
# apt install curl
Установите персональный менеджер пакетов:
# curl -sL https://deb.nodesource.com/setup_12.x | bash -
После этого установите node.js выбранной в верхнем пункте версии:
# apt install -y nodejs
CentOS
Node.js и npm устанавливаются аналогично Ubuntu/Debian:
# curl -sL https://rpm.nodesource.com/setup_12.x | bash - # yum install -y nodejs
MongoDB
Ссылки для скачивания актуальной версии репозитория имеются в официальной документации. В примере мы используем версию 4.2.
Ubuntu
Стандартная установка менеджером пакетов:
# apt install -y mongodb
После установки сервис автоматически запускается и готов к работе.
CentOS
Для установки MongoDB при помощи менеджера пакетов создайте файл /etc/yum.repos.d/mongodb-org-4.2.repo со следующим содержимым:
[mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
Установите пакет:
# yum install -y mongodb-org
Запустите сервис как демона:
# systemctl start mongod
Debian
Скачайте ключ и добавьте его в apt-key:
# wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -
Об успешном добавлении ключа свидетельствует строка результата:
# OK
Если вместо ‘OK’ вы видите ошибку:
# E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
установите недостающий пакет:
# apt-get install gnupg
Создайте файл /etc/apt/sources.list.d/mongodb-org-4.2.list и добавьте в него ссылку на репозиторий MongoDB:
# echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" > /etc/apt/sources.list.d/mongodb-org-4.2.list
«buster» в составе команды может потребовать замены на версию используемого вами дистрибутива.
Обновите кеш пакетов:
# apt update
Установите пакет:
# apt install -y mongodb-org
Включите сервис и запустите его как демона:
# systemctl enable mongod # systemctl start mongod
ExpressJS
Создайте каталог будущего проекта и перейдите в него:
# mkdir App && cd App
Создайте package.json:
# npm init --yes
Установите сам Express:
# npm install express --save
Angular
Глобально установите пакет Angular CLI:
# npm install -g @angular/cli
В процессе установки возникнет вопрос о согласии с передачей данных разработчику:
? Would you like to share anonymous usage data with the Angular Team at Google under Google’s Privacy Policy at https://policies.google.com/privacy? For more details and how to change this setting, see http://angular.io/analytics. (y/N)
Ответьте на него любым образом — это не повлияет на ход процедуры.
Создайте проект («project» замените любым подходящим вам словом):
# ng new project
На первый вопрос:
? Would you like to add Angular routing? (y/N)
рекомендуем ответить утвердительно — утилита создаст базовую маршрутизацию и установит для этого отдельный модуль.
Следующий вопрос утилита задаст о формате стилей:
? Which stylesheet format would you like to use? ❯ CSS SCSS [ https://sass-lang.com/documentation/syntax#scss ] Sass [ https://sass-lang.com/documentation/syntax#the-indented-syntax ] Less [ http://lesscss.org ] Stylus [ http://stylus-lang.com ]
Ради простоты в качестве формата файлов стилей выберите CSS, нажав Enter. Если вам удобен другой формат — переместитесь к нему стрелками и нажмите Enter.
Базовая настройка
NodeJS + ExpressJS
Перейдите в каталог ранее созданного проекта (если вы сейчас не в нем):
# cd ~/App
Создайте файл index.js и заполните его содержимым:
const express = require('express'); const app = express(); app.get('/', function (req, res) { res.send('ExpressJS + Nodejs works'); }); app.listen(1000);
В нем подключается модуль Express и включается роутинг для главной страницы, при запросе которой отдается строка ‘ExpressJS + Nodejs works’, а также указывается порт для прослушивания — 1000.
Сохранив файл, запустите сервер, выполнив в командной строке:
# node index.js
После этого обратитесь в браузере по внешнему IP-адресу виртуальной машины: http://your-machine-address:1000
В браузере отобразится текст «ExpressJS + Nodejs works».
Чтобы сервер работал даже после выхода из терминала или нажатия Ctrl+C, запустите его при помощи nohup:
# nohup node index.js &
Angular
Перейдите в каталог ранее созданного проекта:
# cd ~/App/project
Запустите Angular с помощью команды:
# ng serve
По умолчанию Angular CLI запускается на localhost’e по 4200 порту. Для запуска на другом хосте и порту, укажите параметры явным образом, добавив к выполняемой команде ключи --host и --port:
# ng serve --host=your-machine-address --port=80
Для запуска в фоне аналогично серверу nodejs используйте nohup:
# nohup ng serve --host=your-machine-address --port=80 &
После ввода команды подождите 15-20 секунд, пока закончится компиляция.
Перейдите по адресу вашего бокса в браузере: http://your-machine-address
Если все прошло хорошо, то отобразится страница:
MongoDB
В Node.js работа с базами данных происходит при помощи модулей. Установите один из них:
# npm install --save mongodb
Чтобы проверить подключение к базе данных при помощи Node.js, создайте скрипт mongo-test.js и наполните его содержимым:
const MongoClient = require("mongodb").MongoClient; const mongoClient = new MongoClient("mongodb://localhost:27017/", { useUnifiedTopology: true, useNewUrlParser: true }); mongoClient.connect(function(err, client){ if(err){ return console.log(err); } else { console.log("Connected"); } client.close(); });
Запустите созданный скрипт:
# node mongo-test.js
Если консоль сообщит «Connected» — значит, подключение произошло успешно.
Теперь вы готовы к созданию собственного MEAN-приложения. Ориентируйтесь при этом на официальную документацию: