如何在数字海洋云服务器中为 MERN 堆栈设置 pm2?



我能够使用我的 MERN Stack 应用程序成功设置 pm2,但是当我尝试运行pm2 start server.js并且它显示状态online但我无法在浏览器中访问我的 MERN 堆栈应用程序,但是当我在不使用 pm2npm run dev与 Nodemon 一起运行我的应用程序时,一切正常。下面是我的服务器.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服务器的图像.js在终端中在线,但我无法访问它。 我想知道,是服务器.js文件的问题吗,请给出建议。 谢谢你的帮助。

设置 pm2 配置

  1. CD 到项目文件夹

  2. 使用以下配置为 pm2 创建 ecosystem.config.js 文件

模块导出 = { 应用程序 : [{ 名称 : "应用名称", 脚本 : './索引.js', 环境: { NODE_ENV:"发展" }, env_production : { NODE_ENV:"生产" } }], };

  1. 使用 pm2 启动应用程序的进程
生产

用:pm2启动--环境生产

用于开发:pm2启动--环境开发

一些基本的 pm2 命令

停止应用程序
  • :pm2停止应用程序名称
  • 启动应用程序:pm2启动应用程序名称
  • 监控应用程序 : pm2 监控应用程序名称
  • 删除应用程序:pm2删除应用程序名称
  • 显示正在运行的 pm2
  • 进程列表:pm2 列表

希望这有帮助!

最新更新