Я работаю над API для отдыха с поддержкой fastify и пытаюсь разделить свой код на логические файлы. У меня есть несколько объектов класса, которые я импортирую на свой сервер, где определено fastify и происходит fastify.listen. Чего я не могу понять, так это того, как получить доступ к экземпляру fastify внутри файла, который я импортирую.
app.js
import fastify from 'fastify'
import autoload from 'fastify-autoload'
import { join } from 'desm'
export default function (opts) {
const app = fastify(opts)
app.register(autoload, {
dir: join(import.meta.url, 'routes')
})
return app
}
server.js
import createApp from './app.js'
import 'dotenv/config.js'
import Sessions from './scripts/sessions.js'
import emitter from 'central-event'
async function start () {
const app = createApp({ logger: true })
await app.listen(process.env.PORT || 3000, process.env.IP || '0.0.0.0')
const intervalSeconds = process.env.intervalSeconds * 1000
setInterval(function () {
emitter.emit('heartbeat')
}, intervalSeconds)
}
start()
Я хочу получить доступ к экземпляру приложения fastify внутри session.js, который импортирован в server.js. Я пробовал разные вещи, такие как импорт fastify и создание там приложения, надеясь, что оно будет унаследовано и т. д. Буду признателен за любую помощь.