我正在将一个应用程序从sails.js迁移到环回,并向所有环回大师提出一个新手问题。
我有两组功能,我可以通过应用程序访问。
- 数据函数 - 模块之间用于获取某些配置和对象属性的常用函数
- 实用功能 - 用于字符串、对象、数组和数据操作的函数。
当前应用程序中总共有大约 15 个数据和 25 个 util 函数
我有三个关于编写存储那里函数的问题..
- 服务器/中间件是否是编写这些函数的正确位置
- 如果函数存储在服务器/中间件位置,则调用这些函数的"初始:之后"阶段
- 我注意到您不能将多个中间件函数存储在一个文件中,每个函数都需要单独编写并在中间件中注册。如果函数存储在中间件中,我是否需要为每个函数创建单独的文件?我想将函数分组到尽可能少的文件中。
感谢您阅读这篇文章。对于以很棒的环回从其他平台迁移的人来说,答案将非常有帮助。
共享函数和数据的一个想法可能是在引导脚本中将它们公开给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 文件中。
我不确定这是否是你要找的,但这是一个想法。