@melishev

Как задеплоить приложение на Express.js в связке с Nuxt.js на хостинге Beget?

Есть у меня Node.js приложение на Express.js и Nuxt.js. Первый отвечает за сервер и Api, второй за фронтенд.

Проблема: на локалке все идет хорошо, но при запуске на сервере Beget через SSH подключение, при закрытии окна терминала Express отключается, и остается один Nuxt.

Скорее всего я не так запускаю само приложение. Раньше в поддержке мне порекомендовали запускать чистый проект на Nuxt.js с помощью пакета 'nuxt-start'. Всё работало! Но теперь у меня еще подключен Express и как запустить его я без понятия.

Вот мой код запуска сервера:
const express = require('express')
const { Nuxt, Builder } = require('nuxt')

// Создание express
const app = express()

// Импорт Nuxt.js
const config = require('../nuxt.config.js')
config.dev = process.env.NODE_ENV !== 'production'

async function start () {
    // Инициализация Nuxt.js
    const nuxt = new Nuxt(config)

    const { host, port } = nuxt.options.server

    // Сборка в режиме разработчика
    if (config.dev) {
        const builder = new Builder(nuxt)
        await builder.build()
    } else {
        await nuxt.ready()
    }

    // Запуск Nuxt.js через Express
    app.use(nuxt.render)

    // Прослушка сервера
    app.listen(port, host)
}

start()


Может кто-то уже сталкивался с задачей запуска Express на Beget?
  • Вопрос задан
  • 697 просмотров
Решения вопроса 1
neuotq
@neuotq
Прокрастинация
Вы как-то мало подробностей написали. Но как я понял у вас vps и вы заходите через ssh и в консоле запускаете просто node app.js ?
По хорошему нужно делать нормальный цикл с ci/cd.
В любом случае начинайте с pm2.
А далее будет pm2 start app.js.
pm2 возьмёт на себя управление процессом для приложения.
При деплое нужно его перезапускать(повторюсь по хорошему нужны ci/cd скрипты и тп).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы