如何在多个用户之间正确使用数据加载器?

时间:2018-06-13 14:30:53

标签: node.js caching graphql

caching per request中,给出了以下示例,其中显示了如何在express中使用数据加载器。

function createLoaders(authToken) {
  return {
    users: new DataLoader(ids => genUsers(authToken, ids)),
  }
}

var app = express()

app.get('/', function(req, res) {
  var authToken = authenticateUser(req)
  var loaders = createLoaders(authToken)
  res.send(renderPage(req, loaders))
})

app.listen()

我对将authToken传递给genUsers批量函数感到困惑。如何组合批处理函数以使用authToken并返回每个用户相应的结果??

1 个答案:

答案 0 :(得分:1)

示例说明genUsers应使用当前请求的用户凭证(由其身份验证令牌标识),以确保他们只能获取他们允许查看的数据。本质上,加载器在请求开始时初始化,然后在最后被丢弃,并且永远不会在请求之间回收。