Egg.js 为什么要将util工具方法放到helper上呢?
我们的工具类都是放到类似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