如何同步加载 fastify-env 环境?
How to load fastify-env environments synchronously?
我正在研究 fastify 微服务,想使用 fastify-env 库来验证我的环境输入并在整个应用程序中提供默认值。
const fastify = require('fastify')()
fastify.register(require('fastify-env'), {
schema: {
type: 'object',
properties: {
PORT: { type: 'string', default: 3000 }
}
}
})
console.log(fastify.config) // undefined
const start = async opts => {
try {
console.log('config', fastify.config) // config undefined
await fastify.listen(3000, '::')
console.log('after', fastify.config) // after { PORT: '3000' }
} catch (err) {
fastify.log.error(err)
process.exit(1)
}
}
start()
如何在服务器启动前使用 fastify.config
对象?
fastify.register
异步加载插件 AFAIK。如果您想立即使用特定插件中的内容,请使用:
fastify
.register(plugin)
.after(() => {
// This particular plugin is ready!
});
使用ready()
https://www.fastify.io/docs/latest/Server/#ready等待所有插件加载完成。然后使用您的配置变量调用 listen()
。
try {
await fastify.ready(); // will load all plugins
await fastify.listen(...);
} catch (err) {
fastify.log.error(err);
process.exit(1);
}
我正在研究 fastify 微服务,想使用 fastify-env 库来验证我的环境输入并在整个应用程序中提供默认值。
const fastify = require('fastify')()
fastify.register(require('fastify-env'), {
schema: {
type: 'object',
properties: {
PORT: { type: 'string', default: 3000 }
}
}
})
console.log(fastify.config) // undefined
const start = async opts => {
try {
console.log('config', fastify.config) // config undefined
await fastify.listen(3000, '::')
console.log('after', fastify.config) // after { PORT: '3000' }
} catch (err) {
fastify.log.error(err)
process.exit(1)
}
}
start()
如何在服务器启动前使用 fastify.config
对象?
fastify.register
异步加载插件 AFAIK。如果您想立即使用特定插件中的内容,请使用:
fastify
.register(plugin)
.after(() => {
// This particular plugin is ready!
});
使用ready()
https://www.fastify.io/docs/latest/Server/#ready等待所有插件加载完成。然后使用您的配置变量调用 listen()
。
try {
await fastify.ready(); // will load all plugins
await fastify.listen(...);
} catch (err) {
fastify.log.error(err);
process.exit(1);
}