Current collected state Current
Observed since 20 Oct, 18:20 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
1811a-zsgc
``` 后台 const express=require('express'); const app=express(); const fs=require('fs');
后台
const express=require('express');
const app=express();
const fs=require('fs');
app.use(express.static('public',{
index:'index.html'
}));
app.use(express.json());
// 页面
app.post('/api/list',(req,res)=>{
let data=JSON.parse(fs.readFileSync('mock/list.json'));
res.send(data)
});
// 编辑
app.post('/api/compile',(req,res)=>{
let {name,city,title,id}=req.body
let data=JSON.parse(fs.readFileSync('mock/list.json'));
let o=data.find(item=>item.id===req.body.id);
// console.log(o,req.body);
Object.assign(o,req.body);
fs.writeFileSync('mock/list.json',JSON.stringify(data))
res.send({code:1})
})
app.listen(8080,()=>console.log('8080启动了!'));
// 删除
app.post('/api/del',(req,res)=>{
let { id }=req.body;
let data=JSON.parse(fs.readFileSync('mock/list.json'));
data=data.filter(item=>item.id!==id);
fs.writeFileSync('mock/list.json',JSON.stringify(data));
res.send({code:1})
})
前台
let wrap=document.querySelector('.wrap'),
ullist=document.querySelector('.ullist'),
mask=document.querySelector('.mask'),
city=document.querySelector('.city'),
name=document.querySelector('.name'),
title=document.querySelector('.title'),
ID,
ollist=document.querySelector('.ollist');
// 列表
rander()
function rander(){
axios.post('/api/list').then(result=>{
console.log(result.data);
ollist.innerHTML=result.data.map(item=>{
return`<li my-id='${item.id}'>
<span>></span>
<span>${item.name}</span>
<span>${item.city}</span>
<span>${item.title}</span>
<span>
<button class="compile" my-id='${item.id}'>编辑</button>
<button class="add" my-id='${item.id}'>添加食品</button>
<button class="del" my-id='${item.id}'>删除</button>
</span>
</li>`
}).join('')
})
}
// 编辑
ollist.addEventListener('click',e=>{
let tar=e.target;
if(tar.className==='compile'){
mask.style.display='block';
ID=tar.getAttribute('my-id');
}
})
mask.addEventListener('click',e=>{
let tar=e.target;
if(tar.className==='no'){
mask.style.display='none'
}
if(tar.className==='ok'){
mask.style.display='none';
// let id=tar.getAttribute('my-id')
console.log(ID);
axios.post('/api/compile',{
name:name.value,
city:city.value,
title:title.value,
id:ID
}).then(result=>{
result.data.code&&rander()
})
}
})
// 删除
ollist.addEventListener('click',e=>{
let tar=e.target;
if(tar.className==='del'){
ID=tar.getAttribute('my-id')
console.log(ID);
axios.post('/api/del',{id:ID}).then(result=>{
result.data.code&&rander()
})
}
})
// 增加
ollist.addEventListener('click',e=>{
let tar=e.target;
if(tar.className==='add'){
ID=tar.getAttribute('my-id')
console.log(ID);
axios.post('/api/del',{id:ID}).then(result=>{
result.data.code&&rander()
})
}
})
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
axiosEnvironment{
"local_name": "axios",
"alias": false,
"peer_metadata": null
} | ^0.21.1 | runtime |
expressEnvironment{
"local_name": "express",
"alias": false,
"peer_metadata": null
} | ^4.17.1 | runtime |
mockjsEnvironment{
"local_name": "mockjs",
"alias": false,
"peer_metadata": null
} | ^1.1.0 | runtime |
Source distribution
{
"integrity": "sha512-E2JqW+t6r1J4nP14oNvFg2q48g2dLpzbpkZrlb9LxRLpxS9IXXTSt8AtGEDMzqbGDuoHTbi/5wLcEoQJBMvZqA==",
"shasum": "7096c5282f69498dc3eda30c5e3be6a545065c01",
"tarball": "https://registry.npmjs.org/1811a-zsgc/-/1811a-zsgc-3.0.0.tgz",
"fileCount": 9,
"unpackedSize": 116953,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgER2/CRA9TVsSAnZWagAAjcIP/2tBEzwHDsDzsY5Jov0I\nNY8YcqDOLRH6+MhO0mtiZhDmHrlr7yOQZ70Qp0nKz/39Ze16I3joAQoh7wVv\nDrWXyHBkmmYUSzd/YwglC9X+1COB8FK0VdiOaeAcCw/LsRauZqlZnnyc1i5C\nvMywOQSB2N+f7xsU4Q2+uMoyBwxPx9CoqysxwnJWFmryCnl2yRoKjFLiba0k\nb0LhM/etFzF4P39Q5bkTLhg9EGrwpL3IvfgX3zs9xtHMlpn/oQy9nUYM66xi\n8hmNUWoKkeMmbzh1Kbr92bgsZ2tnPZJAp0qDLHxOqByGZSLq9iwBLxYQEB72\nJKzJd5U2MPnSCFdXaMMG4dRoDL4jT8fT5csIGEBc6N4V/OQ+JMF84xKIxAhL\nHQOSX9NZLb+jSG6p7MdImnJMejTrarHhYe0jOQH4epSPrqWnrkIT1w6wUTJf\nmHffoF0v7ste7qRZkPCNADzBSxK0sy9lz6RvfcQ8xT0flSmLoJQFEA75ySwK\nCC/CyX8CdF4UCyJjym2GzdhgqD4ngvpzh9XLjDMx+5F5ieDslxZ4ii2enbaK\nw7Q272HQqNCI6eD3e9YCbgDfpgNHTpIOrd3nwNb9doi6zGb2RwpCe+dBrPuA\nrIt0vEOPmI2MGa3lxKgC8yyvn6YxkcgvF6VK6bU99q3v8FXwwajfS2zQsnGc\n09hd\r\n=i1aQ\r\n-----END PGP SIGNATURE-----\r\n",
"signatures": [
{
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
"sig": "MEUCIFn58DMa4OwgtgzIV5XIl6mYK90HxXKdhizX/ZbeZzEAAiEA1e79zScJ1WgCoft4HvQaDFkTF6P48j3tivrkWDmE27c="
}
]
}Observed since 20 Oct, 18:20 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:48bb86935ffccd20331dfa594110802c4ab04bc1dfbdc4ea491a4e7004c83c36