在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学习笔记 - 简书