// 引入express 包
const express = require("express");
// fs 文件操作內置模塊
const fs = require("fs");
// path 文件目錄路徑內置模塊
const path = require("path");
// 數據
const db = require("./src/mock/data.json");
// 實例化 express 給 app 實例對象
const app = express();
// 開放靜態資源文件src
app.use(express.static("src"));
// post 數據轉換
app.use(express.json());
app.use(express.urlencoded());
// 配置默認頁
app.get("/", (req, res) => {
// sendFile 接收 絕對路徑。 __dirname :文件所在磁盤的路徑(指向文件的絕對路徑)
res.sendFile(path.join(__dirname, "/src/index.html"));
})
// 接口位置
// 登錄
app.get("/login", (req, res) => {
let off = db.some(item => {
return item.name == req.query.name && item.pwd == req.query.pwd;
})
if (off) {
res.send({ code: 0, msg: "登錄成功" })
} else {
res.send({ code: 1, msg: "登錄失敗" })
}
})
// 添加數據 (增)
app.post("/add", (req, res) => {
// 根據前端傳過來的下標刪除對應的下標數據
db.push(req.body);
fs.writeFileSync("./src/mock/data.json",JSON.stringify(db));
res.send({code:0,msg:"添加成功!"});
})
// 刪除數據 (刪)
app.get("/del", (req, res) => {
// 根據前端傳過來的下標刪除對應的下標數據
db.splice(req.query.uid, 1);
fs.writeFileSync("./src/mock/data.json",JSON.stringify(db));
res.send({code:0,msg:"刪除成功!"});
})
// 修改數據 (改)
app.post("/updata", (req, res) => {
// 根據前端傳過來的下標刪除對應的下標數據
db.splice(req.body.uid,1,req.body);
fs.writeFileSync("./src/mock/data.json",JSON.stringify(db));
res.send({code:0,msg:"修改成功!"});
})
// 查詢所有 (查)
app.get("/list", (req, res) => {
// 把數據直接返回給前端
res.send(db);
})
// 查詢單個數據(查詢詳情)
app.get("/listOne", (req, res) => {
// 根據前端傳過來的下標查詢當前的數據
let data = db[req.query.uid];
res.send(data);
})
// 模糊查詢
app.post("/search", (req, res) => {
// 根據前端傳過來的下標刪除對應的下標數據
let data = db.filter(item=>{
return item.name.includes(req.body.name);
})
res.send(data);
})
// 分頁
// 條數
let pagSize = 5;
// 總頁數
let page = Math.ceil(db.length / pagSize);
// 頁碼 1 2 3 4 5 ...
let arr = [];
for (let index = 1; index <= page; index++) {
arr.push(index); //1 2 3 4 5 ...
}
// 默認渲染第一頁5條
app.get("/listPage", (req, res) => {
// 第一次渲染的條數
let start = db.slice(0,pagSize);
// 給前端返回頁碼和默認條數
res.send({arr,start});
})
// 分頁
app.get("/nextPage", (req, res) => {
// 當前頁碼 =(當前頁碼 - 1)* 條數
let s = (req.query.id - 1) * pagSize;
// slice 截取當前頁碼對應的數據
let data = db.slice(s,s + pagSize);
// 返給前端
res.send(data);
})
// 設置啓動端口號
app.listen(8083, () => {
console.log("8083啓動");
})
node + express + axios 增刪改查
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.