您的位置:首页 > Web前端 > Node.js

简单做了一个代办事项列表系统 ,增删改查。 前台页面用 jquery 后台用nodejs ,数据库用的是mongdoDB 。

2021-01-10 20:49 1186 查看
引入npm 第三方mongoose包连接mongoDb本地数据库todolist
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/todolist',{
useNewUrlParser: true ,
useUnifiedTopology: true
});
//导出数据库连接文件
module.exports=mongoose;

//导入连接数据库文件
const mongoose=require('./connect')
const Schema = mongoose.Schema;
这里直接用mongoose schema 建模
const  userSchema=new Schema({
name:{type:String},
password:{type:String}
})

const todoContentSchema=new Schema({
data:{type:String},
isV:{type:Number,default:1} ,
com:{type:String,default:1},
th:{type:String,default:0}

})

//实例化模型
const todoContent = mongoose.model('todoContent', todoContentSchema);
const User = mongoose.model('User', userSchema);
//  const login= mongoose.model('login', userShema);
// const Cat = mongoose.model('Cat', catSchema);
module.exports={
User,todoContent
}

//后台代码  用node js express 框架
const express=require('express')
const bodyParse=require('body-parser')
//这里用cors第三方包做了跨域处理
const cors=require('cors')
//导入连接数据库的文件
const { User,todoContent}=require('./model/index')
//导入token 文件
const {verifyToken,createToken}=require('./token')

const app=express()
app.use(express.json())
app.use(cors())
// app.use(express.urlencoded({extended:false}))
// var urlencodedParser = bodyParse.urlencoded({ extended: false })
const PORT=8220
//注册用户接口
app.post("/regist",(req,res)=>{
//console.log(req.body);
const UserDate = req.body;
const  name=req.body.name;
const  password=req.body.password;
const user=new User(UserDate)
user.save().then((data)=>{
console.log(data);
res.send({
status:200,
msg:"添加数据成功",
data:{
name,
password
}
})
})
})

//登录用户接口
app.post('/login',(req,res)=>{
const {name,password}=req.body;
User.findOne({name}).then((UserDate)=>{
//  console.log(UserDate);
if(password===UserDate.password){
const token=createToken(UserDate)
res.send({
status:300,
msg:"登录成功",
data:{
name,
password,
token
}
})
}else{
res.send({
status:303,
msg:"用户名或者密码错误"

})
}
})

})
//添加数据接口
app.post('/todo',(req,res)=>{
const data=req.body;
console.log(data);
//    res.send(data)
const todolist=new todoContent(data)
todolist.save().then((data)=>{
res.send({
status:203,
msg:"添加数据成功",
data:{
data
}
})
})
})
//修改数据接口
app.patch("/todo/:id", (req, res) => {
console.log(req.params.id);
console.log(req.body);
todoContent.updateOne({ _id: req.params.id }, req.body).then((updata) => {
todoContent.find({ _id: req.params.id }).then((data) => {
res.send({
status: 400,
msg: "更新成功",
data
});
});
});
})
//删除数据接口
app.delete("/todo/:id", (req, res) => {
const id = req.params.id;
todoContent.updateOne({ _id: id }, { com: 0 }).then((data) => {
res.send({
status: 500,
msg: "删除成功",
data,
});
});
});
//拿到当前用户名
app.get("/todo",vv,(req,res)=>{
//return res.send(req.body.usertoken)
const id = req.params.id;
const data=req.body.usertoken.data
console.log(data);
console.log(id)
res.send({
status:410,
msg:"获取用户名成功",
data:{
user: req.body.usertoken.data
}
})
})
//拿到所有代办事项数据
app.get("/data",(req,res)=>{
todoContent.find({com:"1"}).then((data)=>{
res.send({
status:306,
msg:"获取数据成功",
data:{
data
}
})
})

})
//完成数据

app.put('/data/:id',(req,res)=>{
const id = req.params.id;
todoContent.updateOne({_id:id}, {$set:{th:1}} ).then((data)=>{
res.send({
status:400,
msg:"更新成功"
})

} )

})

//手写中间件验证token
function vv(req, res, next) {
const token = req.headers.authorization.split(" ")[1];
const usertoken = verifyToken(token);
//  console.log(usertoken);
if(!usertoken){
res.sendStatus(401)
}else{
req.body.usertoken=usertoken;
next()
}
}

app.listen(PORT,()=>{
console.log(`服务运行在${PORT}`);
})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐