1.controller文件
'use strict'; const Controller = require('egg').Controller; class ArticleController extends Controller { // 创建新文章 async createArticle() { const queryObj = this.ctx.request.body; const result = await this.ctx.model.Article.create({ title: queryObj.title, subtitle: queryObj.subtitle, text: queryObj.text, name: queryObj.name, openid: queryObj.openid, status: 2, }); this.ctx.body = { result }; } // 查询文章 async getArticle() { const queryObj = this.ctx.query; console.log('queryObj', queryObj); const where = {}; const pagination = { pageSize: 10, current: 1 }; // 每页显示数量 if (queryObj.pageSize) { pagination.pageSize = Number(queryObj.pageSize); } // 当前页数 if (queryObj.current) { pagination.current = queryObj.current; } if (queryObj.id) { where.id = queryObj.id; } if (queryObj.openid) { where.openid = queryObj.openid; } if (queryObj.status) { where.status = queryObj.status; } const count = await this.app.model.Article.count({ where }); const result = await this.ctx.model.Article.findAll({ where, offset: (pagination.current - 1) * pagination.pageSize, limit: pagination.pageSize, order: [[ 'createdAt', 'DESC' ]], }); this.ctx.body = { result, pagination: { total: count, pageSize: pagination.pageSize, current: pagination.current, }, statu: 200, }; }
//删除文章 async deleteArticle() { const queryObj = this.ctx.request.body; const where = {}; if (queryObj.id) { where.id = queryObj.id; } await this.ctx.model.Article.destroy({ where }); this.ctx.body = { state: 'success', msg: '删除成功' }; }
// 审核文章 async checkArticle() { const queryObj = this.ctx.request.body; console.log('queryObj', queryObj); // eslint-disable-next-line eqeqeq if (queryObj.status == 0 || queryObj.status == 1 || queryObj.status == 2) { const where = {}; if (queryObj.id) { where.id = queryObj.id; } const result = await this.ctx.model.Article.findOne({ where }); if (result) { const result = await this.app.model.Article.update( { status: queryObj.status, }, { where: { id: queryObj.id, }, } ); this.ctx.body = { result, state: 'success', msg: '更改完成', }; } } else { this.ctx.body = { state: 'fail', msg: '请传递正确的审核结果' }; } } } module.exports = ArticleController;
2.model文件
'use strict'; module.exports = app => { const { STRING, INTEGER, TEXT, DATE } = app.Sequelize; // 获取数据类型 const Article = app.model.define( 'article', { id: { type: INTEGER, primaryKey: true, autoIncrement: true }, title: { type: STRING, allowNull: false }, subtitle: { type: STRING, allowNull: false }, text: { type: TEXT, allowNull: false }, name: { type: STRING, allowNull: false }, openid: { type: STRING, allowNull: false }, status: { type: INTEGER, allowNull: false }, createdAt: { type: DATE, defaultValue: app.Sequelize.NOW }, }, { freezeTableName: true, // Model 对应的表名将与model名相同 timestamps: false, } ); return Article; }; /* defaultValue 设置默认 Boolean allowNull 是否允许为空 Boolean unique 属性用来创建一个唯一约束. Boolean | string primaryKey 用于定义主键. Boolean autoIncrement 可用于创建自增的整数列 Boolean comment 注释 string; references: { // 这是引用另一个模型 model: Bar, // 这是引用模型的列名称 key: 'id', // 这声明什么时候检查外键约束. 仅限PostgreSQL. deferrable: Sequelize.Deferrable.INITIALLY_IMMEDIATE } */
3.router文件
router.get('/getArticle', controller.article.getArticle);//查询 router.post('/createArticle', controller.article.createArticle);//创建 router.post('/checkArticle', controller.article.checkArticle);//审核 router.post('/deleteArticle', controller.article.deleteArticle);//删除