【问题标题】:How to set up pm2 in digital ocean cloud server for MERN Stack?如何在 MERN Stack 的数字海洋云服务器中设置 pm2?
【发布时间】:2020-05-27 17:18:16
【问题描述】:

我能够使用我的 MERN 堆栈应用程序成功设置 pm2,但是当我尝试运行 pm2 start server.js 并显示状态 online 但我无法在浏览器中访问我的 MERN 堆栈应用程序时,我在没有使用 pm2 npm run dev 和 Nodemon 的情况下运行我的应用程序,一切正常。下面是我的 server.js 文件

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 server.js 的图像,但我无法访问它。 我想知道,是不是server.js文件的问题,请提出建议。 感谢您的帮助。

【问题讨论】:

    标签: digital-ocean pm2


    【解决方案1】:

    设置 pm2 配置

    1. cd 到项目文件夹

    2. 使用以下配置为 pm2 创建生态系统.config.js 文件

    module.exports = { 应用 : [{ 名称:'APPNAME', 脚本:'./index.js', 环境:{ NODE_ENV: '发展' }, 环境生产:{ NODE_ENV: '生产' } }], };

    1. 使用 pm2 启动应用进程

    对于生产:pm2 start --env production

    对于开发:pm2 start --env development

    一些基本的 pm2 命令

    • 停止应用 : pm2 stop APPNAME
    • 启动应用:pm2 start APPNAME
    • 监控应用:pm2 monit APPNAME
    • 删除应用:pm2 delete APPNAME
    • 显示正在运行的 pm2 进程列表:pm2 list

    希望这会有所帮助!

    【讨论】:

    • 如果您已经有一个 config.js 文件,那么只需在 config.js 文件中添加这些行。
    • 对不起,Abhishek Panchal,它仍然不起作用,我不知道为什么它仍然不起作用。
    • 我在项目目录下创建了cosystem.config.js 文件,但它仍然无法访问我的应用程序。
    • 是 server.js 文件的问题,你能帮忙检查下那个 server.js,检查我的代码吗?感谢 Abhishek Panchal。
    • 谢谢你,Abhishek Panchal。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 2020-07-02
    • 2018-07-14
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    相关资源
    最近更新 更多