阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

    教程列表

    数据库
    抓包专区
    测试专区

    Egg.js 代码风格指南

    建议开发者使用 npm init egg --type=simple showcase 来生成并观察推荐的项目结构和配置。

    用类的形式呈现(Classify)

    旧写法:

    module.exports = app => {
      class UserService extends app.Service {
        async list() {
          return await this.ctx.curl('https://eggjs.org');
        }
      }
      return UserService;
    };
    

    修改为:

    const Service = require('egg').Service;
    class UserService extends Service {
      async list() {
        return await this.ctx.curl('https://eggjs.org');
      }
    }
    module.exports = UserService;
    

    同时,框架开发者需要改变写法如下,否则应用开发者自定义 Service 等基类会有问题:

    const egg = require('egg');
    
    module.export = Object.assign(egg, {
      Application: class MyApplication extends egg.Application {
        // ...
      },
      // ...
    });
    

    私有属性与慢初始化

    • 私有属性用 Symbol 来挂载。
    • Symbol 的描述遵循 jsdoc 的规则,描述映射后的类名 + 属性名。
    • 延迟初始化。
    // app/extend/application.js
    const CACHE = Symbol('Application#cache');
    const CacheManager = require('/edu/egg//edu/egg/lib/cache_manager');
    
    module.exports = {
      get cache() {
        if (!this[CACHE]) {
          this[CACHE] = new CacheManager(this);
        }
        return this[CACHE];
      },
    }
    
    卖前端学习教程

    只需几十元,就能买到培训班的内部教程!开启高薪之路!

    零基础小白阿里P7的教程都有!

    同时长期收购所有培训班的前端教程

    目录
    目录