Мы обновляем наше приложение 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
, поэтому мы можем позвонить ему в любое время после его регистрации.
Есть мысли / решения?