node
2023年1月8日大约 2 分钟
用 node.js 编写 api 接口
- 下载依赖
npm install express --save
# 入参出参Json格式化
npm install body-parser --save
# 处理跨域
npm install cors --save- 编写服务端 js
/* 引入express框架 */
const express = require("express");
const app = express();
/* 引入cors */
const cors = require("cors");
app.use(cors());
/* 引入body-parser */
const bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.all("*", function (req, res, next) {
if (!req.get("Origin")) return next();
// use "*" here to accept any origin
res.set("Access-Control-Allow-Origin", "*");
res.set("Access-Control-Allow-Methods", "GET");
res.set("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");
// res.set('Access-Control-Allow-Max-Age', 3600);
if ("OPTIONS" == req.method) return res.send(200);
next();
});
const responseBody = {
code: 200,
message: "成功",
data: {
list: [],
},
};
// -------------------------------get-------------------------------
app.get("/", (req, res) => {
res.send('<p style="color:red">服务已启动</p>');
});
app.get("/api/list", (req, res) => {
res.json(responseBody);
});
app.get("/api/:userId/books/:bookId", function (req, res) {
res.send(req.params);
});
// -------------------------------post-------------------------------
app.post("/api/add", function (req, res) {
console.log(req.body); // 请求入参
res.send(req.body);
});
// -------------------------------delete-------------------------------
app.delete("/api/delete", function (req, res) {
res.send("DELETE request to homepage");
});
// -------------------------------put-------------------------------
app.put("/api/put", function (req, res) {
res.send("PUT request to homepage");
});
/* 监听端口 */
app.listen(3000, () => {
console.log("listen:3000");
});启动
假设服务端 js 名称为 index.js
node index.js服务器安装 node
Ubuntu
# 安装
apt install nodejs
apt install npm
# 使用N升级node
npm cache clean -f
npm i -g n
# 更新版本
n stable # 把当前系统的 Node 更新成最新的 “稳定版本”
n lts # 长期支持版
n latest # 最新版
n 18.0.0 #指定安装版本
# 检查是否更新完毕
node -v
# 若版本号没变,试下如下指令之一
hash -r
rehashCentOS
# 还没写呢!部署到服务器
使用 pm2 管理 nodejs 的接口
# 安装依赖
npm install -g pm2
# pm2命令使用
pm2 start index.js #启动index项目
pm2 list #列出由pm2管理的所有进程信息,还会显示一个进程会被启动多少次, 因为没处理的异常。
pm2 monit #监视每个node进程的CPU和内存的使用情况
pm2 logs #显示所有进程日志
pm2 stop all #停止所有进程
pm2 restart all #重启所有进程
pm2 reload all #0秒停机重载进程 (用于 NETWORKED 进程)
pm2 stop 0 #停止指定的进程
pm2 restart 0 #重启指定的进程
pm2 startup # 产生init 脚本 保持进程活着
pm2 web #运行健壮的 computer API endpoint (http://localhost:9615)
pm2 delete 0 #杀死指定的进程
pm2 delete all #杀死全部进程
