CNode

Egg.js 为什么要将util工具方法放到helper上呢?

问答
Hhelloworldwen发布于6 年前最后回复6 年前2 回复5200 浏览0 收藏

我们的工具类都是放到类似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)

A
atian25#1·6 年前

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

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

A
AnzerWall#2·6 年前

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

参与回复
登录后即可参与回复。登录