工具包 - 985ch/egg-sachikawa GitHub Wiki

为了方便开发者,egg-sachikawa框架把一些方法封装成了常用工具包。开发者可以通过两种方式来使用工具包:

const Utils = require('egg-sachikawa').Utils
const Utils = ctx.helper

方法列表

Utils.extendModel(model, defAttr, filters)

该方法用于扩展数据模型,给数据模型追加simpleFind等方法使其更易于使用。详见数据库

参数

  • model:要扩展的数据模型对象
  • defAttr:使用扩展方法时,默认查询的字段。若省略该参数则默认查询所有字段
  • filters:数据过滤器,是一个数组。通过该参数,可以指定在使用扩展方法进行查询时,如何处理指定的列。

返回

该方法没有返回

Utils.randString(length, chars)

该方法用于生成指定长度的的随机字符串并返回

参数

  • length:待生成的随机字符串的长度,默认32
  • chars:随机字符串的字符集,默认'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

返回

返回一个指定长度的随机字符串

Utils.env(prod, other)

该方法用于获取环境变量。和process.env相比,在获取到的环境变量值为undefined时,该方法会抛出一个错误,而process.env什么都不做。在配置中使用该方法获取环境变量可以让开发者更清楚的知道到底是漏了哪个环境变量没有配置。

参数

  • prod:该参数是一个字符串,指定当EGG_SERVER_ENV===prod时使用的环境变量。若省略参数other,则无论什么环境下都使用该环境变量
  • other:该参数也是一个字符串,制定EGG_SERVER_ENV!==prod时使用的环境变量。可省略。

返回

返回指定环境变量的值,若环境变量未定义则抛出一个包含环境变量名称的错误

Utils.pJson(text, value)

对JSON.parse的封装,但是该方法在parse失败时会以value作为返回值,而非抛出错误。

参数

  • text:传入的字符串
  • value:parse失败时返回的默认值,默认情况下会返回{}

返回

JSON.parse(text)成功时返回该结果,否则返回value

Utils.pushToObj(obj, path, value)

直接往对象的子数组里push一个值。若该子数组不存在,则先创建一个空数组,然后再执行push。

参数

  • obj:要处理的对象
  • path:子对象路径,为字符串
  • value:要push的值

返回

该方法没有返回

示例

let obj = {};
Utils.pushToObj(obj, ['node', 'leaf'], 'first');
Utils.pushToObj(obj, ['node', 'leaf'], 'second');
// obj.node.leaf = ['first', 'second']