Хапи 17: выставить свойства сервера для регистрации модуля - PullRequest
0 голосов
/ 19 декабря 2018

Мы обновляем наше приложение Hapi 16 до Hapi 17 и Hapi-Mysql-2 и столкнулись с проблемой доступа к свойствам сервера, когда модуль зарегистрирован.

Hapi-mysql-2 выставляет зарегистрированныхсерверы баз данных как server.mysql.pool[x], которые мы представляем как req.server.plugin.db.name

Хотя в большинстве случаев такой способ доступа к базам данных подходит, есть пара случаев, когда мы хотим получить доступ к базе данных, как только модульзарегистрирован.Однако в этих случаях req или server не доступны.

Например,

async function loadAllGroups (mydb) {
  const sql = 'SELECT * ' +
    'FROM groups ' +
    'ORDER BY name ASC;'
  const [data] = await mydb.query(sql, [])
  return data
}    

loadAllGroups(req.server.plugins.dbs.name)

  .then((data) => {
    setGroups(data)
  })

module.exports = new MyController()

В приведенном выше loadAllGroups вызывается, как только mycontroller зарегистрированкак обработчик по моему разгромлен.В версии Hapi 16 сервер mysql не подключен к server, поэтому мы можем позвонить ему в любое время после его регистрации.

Есть мысли / решения?

...