【融职培训】Web前端学习 第9章 教务管理系统开发6 后台代码讲解

一、拦截器

在项目中,前台获取数据时,需要前台提供token信息,后台验证才可以获取数据,验证代码如下。

 1 // 在router中请求中使用中间件
 4   router.get('/getclazz', app.middleware.checktoken(),controller.clazz.get);
 5 
 6 // app/milldeware/checktoken.js
 8 // 检验前台的请求头中是否存在token
 9 module.exports = () => {
10     return async function (ctx, next) {
11         if (ctx.request.header['token']) {
12             await next();
13         } else {
14             ctx.status = 401;
15             ctx.body = {
16                 message: '没有token'
17             }
18             return;
19         }
20     }
21   };

二、后台生成token

在登录时,后台需要生成token返回给前端,生成token代码如下:

const token = this.app.jwt.sign({ username:username }, this.app.config.jwt.secret);

三、查询数据

1 // 联查表中的数据
2 const studentList = awathis.app.model.Students.findAll({
3     include: [{  
4         model: this.app.model.Clazz,
5          as: 'clazz'
6     }]
7 });

四、增加数据

在前端完成增加班级或学生的时候,后台要接受前端的数据,并将它传到数据库里面,具体代码如下所示:

1 // 获取前端传的页面
2      let name = this.ctx.request.body.name;
3     const clazz = {
4         clazzname: name
5     }
6     //添加至数据库
7     await this.app.model.Clazz.creat(clazz);

五、删除数据

前端在完成删除的时候,后台需要删除对应id的数据库里面的数据,再传给前端,删除代码如下:

 1 // 获取对应的id
 2     let id = this.ctx.params.id
 3     // 查询需要删除的学生名
 4     const student = awaithis.app.model.Students.findOne({
 5         where: {
 6             id: id
 7         }
 8     })
 9     // 删除
10     student.destroy()

六、修改数据

前端执行修改点击时,后台需要获取前端对应的id以及修改的信息,修改后传到数据库里,再返回给前端,代码如下所示:

 1 // 获取对应的id
 2     let id = this.ctx.params.id
 3 // 获取需要修改的值
 4     let putclazzname =   this.ctx.request.body.putclazzname
 5 // 修改值
 6     let row = {
 7         clazzname: putclazzname
 8     },
 9         options = {
10             where: {
11                 id: id
12             }
13         }
14 // 返回给数据库
15     await this.app.model.Clazz.update(row, options);

【融职教育】在工作中学习,在学习中工作

猜你喜欢

转载自blog.csdn.net/ITXDL123/article/details/107180742