简单做了一个代办事项列表系统 ,增删改查。 前台页面用 jquery 后台用nodejs ,数据库用的是mongdoDB 。
引入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}`);
})
简单做了一个代办事项列表系统 ,增删改查。 前台页面用 jquery 后台用nodejs ,数据库用的是mongdoDB 。的更多相关文章
- 列表的初识,列表的索引切片,列表的增删改查,列表的嵌套,元组的初识,range
1 内容总览 列表的初识 列表的索引切片 列表的增删改查 列表的嵌套 元组的初识(了解) 元组的简单应用(了解) range 2 具体内容 列表的初识 why: str: 存储少量的数据.切片出来全都 ...
- Python列表的增删改查排嵌套特殊输出格式
Python列表的增删改查排嵌套特殊输出格式 一.列表的样子: a = ['q' , 'w' , 'e ', 'r','t'] a为列表名,[ ]为列表内容,' '为列表内的元素,'q'为a[0] 二 ...
- Python(二)列表的增删改查
一,列表的增删改查 列表中增加元素: 1,从列表的末尾增加一个元素:append("") 2,从列表中插入一个元素:insert(下标位置,插入的元素) 合并列表: 1,name. ...
- python列表的增删改查和嵌套
列表 python常用的数据类型 可承载任意的数据类型 列表是有序的,可索引.切片(步长) 列表的创建 list1 = [1, 2, 'whll'] #1. list2 = list() #2. #3 ...
- day5 列表的增删改查
1,列表的增删改查,其他操作.2,元祖.3,列表的嵌套操作.4,开一点dict. 昨日内容回顾: 字符串的方法:1,find通过元素找索引,可切片,找不到返回-12,index,找不到报错.3,spl ...
- ABP教程(四)- 开始一个简单的任务管理系统 - 实现UI端的增删改查
接上一篇:ABP教程(三)- 开始一个简单的任务管理系统 – 后端编码 1.实现UI端的增删改查 1.1添加增删改查代码 打开SimpleTaskSystem.sln解决方案,添加一个“包含视图的MV ...
- 004_Python的列表切片,增删改查,常用操作方法,元组,range,join
列表 列表是Python中的基础数据类型之一,它是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = ['kevin',123,True,(1,2,3,'wusir'), ...
- 基于SpringBoot开发一个Restful服务,实现增删改查功能
前言 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练. ...
- 元组,列表的增删改查, for,range 循环
1. list(增删改查) 列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开 列表和字符串一样.也有索引和切片 常用的功能: 1. 增: append() 2. 删 ...
随机推荐
- tensorflow 小记——如何对张量做任意行求和,得到新tensor(一种方法:列表生成式)
希望实现图片上的功能 import tensorflow as tfa = tf.range(10,dtype=float)b = aa = tf.reshape(a,[-1,1])a = tf.ti ...
- LeetCode初级算法之数组:217 存在重复元素
存在重复元素 题目地址:https://leetcode-cn.com/problems/contains-duplicate/ 给定一个整数数组,判断是否存在重复元素.如果任意一值在数组中出现至少两 ...
- System.out.println();快捷键
不同开发工具的输出快捷键是不一样的-System.out.println(); eclipse&my eclipse中是syso +(alt+/) idea 是sout +tab 或者sout ...
- 移动端点击300ms延迟问题
移动端点击延迟事件 1. 移动端浏览器在派发点击事件的时候,通常会出现300ms左右的延迟 2. 原因: 移动端的双击会缩放导致click判断延迟 解决方式 1. 禁用缩放 `<meta nam ...
- STL—— 容器(vector)的各种功能方法
1. 获取容器的元素个数 size() 使用 vectorName.size() 可以输出这个容器中类型的个数,如下代码: 1 #include <iostream> 2 #include ...
- C++ 虚函数表与多态 —— 关键字 override 的用法
override 仅能用于虚函数,他属于C++新特性,是重写覆盖的意思,他的存在仅仅是为了提高代码的可阅读性: 作用: 1. 提示程序的阅读者,这个函数是重写父类的功能. 2. 防止程序员在重写父类的 ...
- Validated 注解完成 Spring Boot 参数校验
1. @Valid 和 @Validated @Valid 注解,是 Bean Validation 所定义,可以添加在普通方法.构造方法.方法参数.方法返回.成员变量上,表示它们需要进行约束校验. ...
- 腾讯游戏 K8s 应用实践|更贴近业务场景的 K8s 工作负载:GameDeployment & GameStatefulSet
引言 蓝鲸容器服务(Blueking Container Service,以下简称BCS)是腾讯 IEG 互动娱乐事业群的容器上云平台,底层基于腾讯云容器服务(Tencent Kubernetes E ...
- 「 洛谷 」P4539 [SCOI2006]zh_tree
小兔的话 推荐 小兔的CSDN [SCOI2006]zh_tree 题目限制 内存限制:250.00MB 时间限制:1.00s 标准输入输出 题目知识点 思维 动态规划 \(dp\) 区间\(dp\) ...
- 虚拟局域网Vlan配置实战
VLAN 的基本概念 Access 类型的接口 Trunk 类型的接口 接口类型小结 以太网交换机的二层接口类型 Access口接收帧 Access口发送帧 Trunk口接收帧 Trunk口发送帧 H ...