egg 项目实战(八)egg.js 开发文章发布接口

1.创建 service 文件

app/service/article.js

const Service = require('egg').Service;

class ArticleService extends Service {
  async create(params) {
    const { app } = this;
    try {
      const result = await app.mysql.insert('article', params);
      return result;
    } catch(err) {
      console.log(err);
      return null;
    }
  }
}

module.exports = ArticleService;

2.创建 article controller 文件

app/controller/article.js

const Controller = require('egg').Controller;
const moment = require('moment');

class ArticleController extends Controller {
  async create() {
    const { ctx } = this;
    const params = {
      ...ctx.request.body,
      createTime: moment().format('YYYY-MM-DD HH:mm:ss')
    };
    const result = await ctx.service.article.create(params);
    if(result){
      ctx.body = {
        status: 200,
        data: result
      }
    }else{
      ctx.body = {
        status: 500,
        errMsg: '发布文章失败'
      }
    }
  }
}

module.exports = ArticleController;

3.配置路由

router.post('/article/create', controller.article.create);

禁用 csrf 安全监测

config/config.default.js

config.security = {
  csrf: {
    enable: false,
  }
};

.

原文地址:https://www.cnblogs.com/crazycode2/p/12422410.html