当前位置: 首页 > news >正文

node.js express创建本地服务以及使用pm2启动服务

在node.js环境下安装插件:

npm i body-parser
npm i express

 

同目录下创建app.js

// 引入express中间件
const express = require('express');
const bodyParser = require('body-parser');
// 创建web服务器
const app = express();
// 使用body-parser中间件解析JSON类型的请求体,处理post请求参数
app.use(bodyParser.json());
// 拦截所有请求
// extended: false 方法内部使用querystring模块处理请求参数的格式
// extended: true 方法内部使用第三方模块qs处理请求参数的格式
app.use(bodyParser.urlencoded({ extended: false }))
// 指定启动服务器到哪个文件夹
app.use(express.static('./dist'));
app.post('/submit-data', (req, res) => {// 通过req.body访问POST参数const postData = req.body;console.log('postData', postData);// 处理postData...res.send('Data received');
});
app.get('/', (req, res) => {console.log('服务器已启动');res.send('返回结果11');
})
app.post('/postid', (req, res) => {res.send({ name: '艾利', age: '11' });
})
// 启动服务器监听80端口
app.listen(8081, () => {console.log('web server22 running at http://127.0.0.1');
})

浏览器输入:http://localhost:8081/

服务输出日志:

浏览器输入的为get请求,要发送post请求,打开Postman输入http://127.0.0.1:8081/submit-data,在body中设置传参请求

 

可以看到返回的结果,服务也打出结果:

如果我们要频繁修改代码时,每次都要先关闭服务再使用node启动,那有什么更好的方法监听到代码改变后就重启服务呢,有个好的方法是使用pm2来启动服务。

先全局设置安装pm2,

npm i -g pm2

 在app.js同级下新增 ecosystem.config.js

module.exports = {apps: [{name: 'my-app',script: 'app.js',// 集群模式,进程数取决于CPU核心数,设置负载instances: "max",exec_mode: "cluster",//启动模式watch: true,//监听代码改变时重启max_memory_restart: '500M',//内存超500M时重启error_file: "./pm2-err.log",//报错日志out_file: "./pm2-out.log",//输出日志log_date_format: "YYYY-MM-DD HH:mm:ss",//日志时间格式merge_logs: true,env: {NODE_ENV: 'development',},env_production: {NODE_ENV: 'production',},}],
};

pm2命令: 

启动命令:pm2 start ecosystem.config.js
终止命令:pm2 stop all

删除命令:pm2 delete all

如果想使用npm命令启动可以在package.json中设置:

"scripts": {

    "serve": "pm2 start ecosystem.config.js",

    "stop": "pm2 stop all",

    "delete": "pm2 delete all"

  },

 现在我们使用npm run serve启动下服务:

可以看到pm2启动了4个进程 ,

再次发起get请求:http://127.0.0.1:8081/

 修改代码:返回结果33

再次请求,可以看到返回结果发生了改变

 如果想看服务输出日志可以使用命令:pm2 logs
其他pm2命令参考:pm2学习笔记 - 简书


http://www.mrgr.cn/news/6274.html

相关文章:

  • 25届网安秋招面试之后台信息泄露
  • Nginx知识详解(理论+实战更易懂)
  • 二十二、处理字符串
  • 【傅里叶分析】复数基础知识
  • Linux驱动入门实验班——DHT11、DS18B20模块驱动(附百问网视频链接)
  • 学习笔记六:ceph介绍以及初始化配置
  • 树状数组算法
  • 使用kubekey快速搭建k8s集群
  • 干货!代码规范
  • 【开端】 如何判断手机号码属于哪个国家(手机号判断正则)汇总
  • C 内联汇编
  • Java将一张excel数据填充到另一张excel表
  • 基于YOLOv8的船舶目标检测与分割(ONNX模型)
  • 一条sql 在MySQL中是如何执行的
  • 栅格布局在 HarmonyOS 中的应用及扩展
  • 智能听诊器:宠物健康监测的新篇章
  • 【SQL】商品销售
  • Spring 常见设计模式
  • C语言学习——文件
  • 微信小程序flex-grow无效