Как правильно запустить приложение node express и mongodb?Я нашел существующий ответ SO (ссылка ниже), но это не кажется хорошим решением.
создание моего экспресс-приложения с использованием express library_skeleton --view=pug
мой package.json включает
"scripts": {
"start": "node ./bin/www",
my ./bin/www
включает var app = require('../app');
app.js
содержит стандартный код, созданный express library_skeleton --view=pug
выше.
mongodb устанавливается в качестве службы наUbuntu и запускается автоматически при загрузке.sudo systemctl status mongodb
У меня уже есть другие приложения nodejs, которые отображаются в статусе pm2 с именем приложения, которое раздражает и опасно для путаницы.
добавил эту строку в app.js
, но она не отображаетсячтобы повлиять на имя, указанное в pm2 или списке запущенных процессов.
app.set('title', 'library_skeleton');
$sudo lsof -i -P -n | grep LISTEN
возвращает
$node 16268 ubuntu 22u IPv6 794840 0t0 TCP *:3500 (LISTEN)
pm2 start bin/www/
запускает мое приложение.видно, что он работает на моем назначенном порту, а приложение Express загружается в браузере в статусе pm2 внизу.(форматирование затрудняет чтение)
в pm2 мой сервер появляется с именем приложения = www
Я надеялся установить заголовок в "app.set ('title' ...""приведет к тому, что назначенное имя появится в статусе pm2, упростит отслеживание и управление запуском / остановкой приложения.
Мне также неясно, как pm2 и службы должны / будут взаимодействовать, этот вопрос SO предполагает созданиескрипт для запуска mongodb и приложения express узла. Подождите, пока mongodb будет готов, прежде чем запускать процесс pm2 при перезагрузке
это выполняется на экземпляре aws ec2, частично для дешевого демо-хостинга,использование большого объема продукции должно перейти на что-то более масштабируемое.
name Имя приложения │ id │ версия │ режим │ pid │ статус │ перезапуск │ время безотказной работы │ процессор │ mem │ пользователь │ просмотр │
│www │ 3 │ 0.0.0 │ fork │ 1243 │ онлайн │ 0 │ 2m │ 0% │ 53.2 MB │ ubuntu │ отключено │