Egg.js 为什么要将util工具方法放到helper上呢?
发布于 4 年前 作者 helloworldwen 4362 次浏览 来自 问答

我们的工具类都是放到类似utils.ts上的,utils.ts上的代码类似于:

  getNDayAgo (n: number) {
    return moment().subtract(n, 'days')
  },

使用的时候就可以类似下面的方法:

import {getNDayAgo} from './util'

getNDayAgo()

但是按照Egg 文档上对helper的说的,将getNDayAgo方法放到helper里面,使用的时候就需要通过 ctx.helper.getNDayAgo()了。但是有些场景获取不到ctx,那么将这些工具类放到helper是不是有点问题呢?

是不是一些比较基础的、和ctx没太大关联的不放到helper上,独立一个utils.ts好一点呢? 没太理解为什么Egg要将util方法放到helper上

Helper 函数用来提供一些实用的 utility 函数。

它的作用在于我们可以将一些常用的动作抽离在 helper.js 里面成为一个独立的函数,这样可以用 JavaScript 来写复杂的逻辑,避免逻辑分散各处。另外还> 有一个好处是 Helper 这样一个简单的函数,可以让我们更容易编写测试用例。

2 回复

helper 当时的定位会接近给模板用的 helper 方法。

如果要 utils 的话,可以参考这篇文章扩展下:https://zhuanlan.zhihu.com/p/153322661

utils 定位的函数直接import就好了吧,helper感觉就是模板环境比较必要,就是比较依赖上下文的函数放helper

回到顶部