连接数据和实用功能的正确位置和方式



我正在将一个应用程序从sails.js迁移到环回,并向所有环回大师提出一个新手问题。

有两组功能,我可以通过应用程序访问。

  1. 数据函数 - 模块之间用于获取某些配置和对象属性的常用函数
  2. 实用功能 - 用于字符串、对象、数组和数据操作的函数。

当前应用程序中总共有大约 15 个数据和 25 个 util 函数

我有三个关于编写存储那里函数的问题..

  1. 服务器/中间件是否是编写这些函数的正确位置
  2. 如果函数存储在服务器/中间件位置,则调用这些函数的"初始:之后"阶段
  3. 我注意到您不能将多个中间件函数存储在一个文件中,每个函数都需要单独编写并在中间件中注册。如果函数存储在中间件中,我是否需要为每个函数创建单独的文件?我想将函数分组到尽可能少的文件中。

感谢您阅读这篇文章。对于以很棒的环回从其他平台迁移的人来说,答案将非常有帮助。

共享函数和数据的一个想法可能是在引导脚本中将它们公开给loopbackContext对象中间件。

let loopback = require('loopback')
app.use(function setContextMethods(req,res,next) {
  var ctx = loopback.getCurrentContext()
  if (ctx) {
    ctx.set('myData', data)
  }
}

这些数据/方法可以在请求期间使用上下文对象访问(它们的可用性取决于您放置它们的中间件插槽,如 session:after session:before 等)。

访问它们的示例:

User.afterRemote('login', function (context, token, next) {
  context.get('myData')
}

这允许您为每个请求公开数据/方法(并配置它们,例如,如果用户是否被记录),除此之外,您始终可以将它们放在 utils.js 文件中。

我不确定这是否是你要找的,但这是一个想法。

最新更新