一、拦截器
在项目中,前台获取数据时,需要前台提供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);
来源:oschina
链接:https://my.oschina.net/u/4125915/blog/4338962