创建express
项目
npm init
npm i express
get
const express = require('express')
const fs = require('fs')
const app = express()
app.get('/',(req,res)=>{
fs.readFile('./list.json','utf-8',(err,data)=>{
if(!err){
const back = JSON.parse(data)
res.send(back.user) // 返回结果
}else{
res.status('500').json({err}) // 设置err后返回的状态码并将错误信息tojson
}
})
})
app.listen(3000,()=>{
console.log('run http://127.0.0.1:3000');
})
post
post请求需要设置content-type
在express
中已经封装好了,下面代码表示可以接收两种类型的content-type
app.use(express.urlencoded()) // x-www-form-urlencoded
app.use(express.json()) //application/json
app.post('/',async (req,res)=>{
const back = await readFile('./list.json','utf-8')
if(back) {
let fileData = JSON.parse(back)
let newId = fileData.user.length+1
fileData.user.push({
name: req.body.name,
age: req.body.age,
id: newId
})
console.log(fileData);
try {
const w = await writeFile('./list.json',JSON.stringify(fileData,null,2))
console.log(w);
if(w){
res.status(200).send('追加成功')
}
}catch (err){
}
}
// res.send('')
})
put
app.put('/:id', async (req,res)=>{
console.log(req.params);
try {
let back = await readFile('./list.json','utf-8')
const userId = Number.parseInt(req.params.id)
const userList = JSON.parse(back)
const user = userList.user.find(item=> item.id == userId)
if(!user){
res.status(403).json({error:'用户不存在'})
}else{
user.name = req.body.name ? req.body.name : user.name
user.age = req.body.age ? req.body.age : user.age
userList.user[user.id - 1] = user
const w = await writeFile('./list.json',JSON.stringify(userList,null,2))
res.status(200).send('修改成功')
}
}catch (error){
res.status(500).json({error})
}
})

网友评论