index.js
const express = require("express");导入express框架
const data = require("./data");导入data文件
const url = require('url');导入路径模块
const fs = require("fs");导入fs模块
var app = express();把express实例化
app.use(express.static("views"));使用静态资源中间件(middleware)
app.set("view engine","ejs");设置模板引擎是ejs
app.get("/",(req,res)=>{
res.send("hello world");
})
app.get("/list/:no?",(req,res)=>{
n=Number(req.params.no);记录哪一个元素是红色的
if(!n && n!=0) n=1; 设置默认值
res.render("list",{渲染list模板
list:data.list,
n:n
})
})
添加
app.get("/add*",(req,res)=>{
var obj=url.parse(req.url,true);
data.list.push(obj.query.item);
fs.writeFileSync("./data.json",JSON.stringify(data));
res.render("list",{渲染list模板
list:data.list,
n:data.list.length-1最后一个元素变红
})
})
删除
app.get("/del/:idx",(req,res)=>{
var idx=Number(req.params.idx);
data.list.splice(idx,1);
fs.writeFileSync("./data.json",JSON.stringify(data));
res.render("list",{渲染list模板
list:data.list,
n:data.list.length-1 最后一个元素变红
})
})
查找下标对应的内容
app.get("/modify/:idx",(req,res)=>{
var idx=Number(req.params.idx);获取下标
var item=data.list[idx];获取对应下标的内容
res.render("modify",{渲染modify模板
idx:idx,
item:item
})
})
修改
app.get("/modify*",(req,res)=>{
var obj=url.parse(req.url,true);获取路径并拆分
data.list[obj.query.idx]=obj.query.item;通过对应的下标,得到修改后的对应内容
fs.writeFileSync("./data.json",JSON.stringify(data));
res.render("list",{渲染list模板
list:data.list,
n:data.list.length-1 最后一个元素变红
})
})
查询
app.get("/query/:kw?",(req,res)=>{
var list=data.list.filter((item)=>{
return item.includes(req.params.kw);
})
res.render("query",{
list:list
})
})
监听
var ser = app.listen(3010,()=>{
console.log(`listen ${ser.address().port} ...`);
})