node express 项目部署问题

370 阅读1分钟

悲剧的开始

领导给了我几个 express 的项目,让我想一下怎么部署,什么是 express 啊, 我直接战术后仰 虽然不会 但是还得干

网上看了点教程,然后实践了一下,记录一下

1. 安装 pm2

npm install -g pm2

pm2是干嘛的呢. 我理解就是管理进程的工具呗,
类似 POSIX中的 service status/start/stop ${process} ,
或者什么 systemctl ${process} start/stop ,反正都差不多一个样子

2.搞一下 https

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
一路下一步,很快啊,就能看到俩文件,看样子是 私钥和证书(没细看)

3. 代码改造

大概看了几眼 express 文档,配置一下 静态文件的目录,然后 搜索了一下 https 怎么写,

//之前这么写
const app = express();
app.listen(8000)

// 现在这么写
const https = require('https');
const fs = require('fs');

const app = express();
const privateKey = fs.readFileSync('./key.pem', 'utf8');  //用到之前生成的文件
const certificate = fs.readFileSync('./cert.pem', 'utf8');
const credentials = { key: privateKey, cert: certificate };
app.use(express.static('staic'));  // 配置静态文件目录
https.createServer(credentials, app).listen(8000);

4. 运行一下看看

上来就是 pm2 start app.js --name helloworld , 很快啊,

[PM2] Starting /others-code/smart/app.js in fork_mode (1 instance)
[PM2] Done.
┌─────┬──────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name     │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼──────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ helloworld    │ default     │ 1.0.0   │ fork    │ 24341    │ 0s     │ 0    │ online    │ 0%       │ 9.2mb    │ alex_sun │ disabled │
└─────┴──────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

5. todo

  1. pm2 文------档 需要看一下
  2. 整个过程太笨重, 怎么自动化搞一搞, 能不能做成 docker 镜像,然后部署的时候更简单一点?

6. 乱语

  1. 今天过得好快啊.
  2. 我只是一个前端啊(node的 event loop 还不会)
  3. 有点饿