正确的位置和方式来连接数据和util函数

时间:2016-02-26 16:39:28

标签: loopbackjs

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

我有两组函数可以通过应用程序访问。

  1. 数据函数 - 模块之间用于获取特定配置和对象属性的常用函数
  2. Util函数 - 用于字符串,对象,数组和数据操作的函数。
  3. 总之,当前应用程序中有大约15个数据和25个util函数

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

    1. 服务器/中间件是否是编写这些功能的正确位置
    2. 如果功能存储在服务器/中间件位置,则是" inital:after"调用这些函数的阶段
    3. 我注意到你不能在一个文件中存储多个中间件函数,每个函数需要单独编写并在中间件中注册。如果函数存储在中间件中,是否需要为每个函数创建单独的文件?我希望尽可能将函数分组到几个文件中。
    4. 感谢您阅读该帖子。这些答案对于那些从令人敬畏的环回中的其他平台迁移的人来说非常有用。

1 个答案:

答案 0 :(得分:0)

共享函数和数据的想法可能是将它们暴露给靴子中的中间件loopbackContext对象。

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

这些数据/方法可以在使用上下文对象的请求期间访问(它们的可用性取决于您将它们放置在会话中的中间件插槽:会话之后:之前等)。

访问他们的示例:

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

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

我不确定这是否是您正在寻找的,但这是一个想法。