Как настроить pm2 на цифровом океаническом облачном сервере для MERN Stack? - PullRequest
1 голос
/ 12 февраля 2020

Я смог успешно настроить pm2 с моим приложением MERN Stack, но когда я попытался запустить pm2 start server.js, и он показывает статус online, но я не смог получить доступ к своему приложению MERN в браузере, но когда Я запускаю свое приложение без использования pm2 npm run dev с Nodemon, все работало нормально. Ниже мой сервер. js file

const express = require('express');
const mongoose = require('mongoose');
const morgan = require('morgan');
const bodyParser = require('body-parser');
const cors = require('cors');
require('dotenv').config();
const config = require('config');
const path = require('path');
const devPort = 8080;

// Setup express app
const app = express();
app.use(cors());
app.options('*', cors());
app.use(express.json());
app.use(morgan('combined'));
app.use(bodyParser.urlencoded({ extended: true }));
mongoose.Promise = global.Promise;

const db = config.get('MONGODB_URI');

mongoose.connect(db, {
  useUnifiedTopology: true,
  useNewUrlParser: true,
  useCreateIndex: true,
  useFindAndModify: false
});
mongoose.connection
  .once('open', () => console.log('Database connected!'))
  .on('error', error => console.log('Could not connect', error));

/*route/api/file is here*/
app.use('/api/user', require('./route/api/user'));
//server static assets in production
if (process.env.NODE_ENV === 'production') {
  //set static folder
  app.user(express.static('client/build'));

  app.get('*', (req, res) => {
    res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.htm'));
  });
}

app.listen(process.env.PORT || devPort, () =>
  console.log(`Node JS is running on port ${devPort}`)
);

вот изображение сервера pm2. js онлайн в терминале, но я не смог получить к нему доступ. Я задавался вопросом, это проблема с сервером. js файл, пожалуйста, дайте предложения. Спасибо за вашу помощь.

1 Ответ

1 голос
/ 12 февраля 2020

Настройка pm2 config

  1. cd в папку проекта

  2. Создать файл ecosystem.config. js для pm2 со следующей конфигурацией

module.exports = {apps: [{name: 'APPNAME', скрипт: './index.js', env: { NODE_ENV: «разработка»}, env_production: {NODE_ENV: «производство»}}],};

Запустите процесс приложения, используя pm2

Для производства: pm2 start --env production

Для разработки: pm2 start --env development

Некоторые основные c команды pm2

  • Останов приложения: остановка pm2 APPNAME
  • Запуск приложения: запуск pm2 APPNAME
  • Monitor Приложение: pm2 monit APPNAME
  • Удалить приложение: pm2 удалить APPNAME
  • Показать список запущенных процессов pm2: список pm2

Надеюсь, это поможет!

...