Open
Description
When implementing the fastify-env plugin as outlined in your SitePoint article I'm getting an error:
E:\js-fastify\index.js:50
app.listen(app.config.PORT, (err, address) => {
^
TypeError: Cannot read property 'PORT' of undefined
at Object.<anonymous> (E:\js-fastify\index.js:50:23)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47
My index.js file looks like this:
// Require the framework and instantiate it
const app = require('fastify')({
logger: true
})
// Use Fastify Env plugin: https://github.com/fastify/fastify-env
const fastifyEnv = require('fastify-env') // load plugin
const options = {
confKey: 'config', // optional, default: 'config'
schema: {
type: 'object',
required: ['PORT'],
properties: {
PORT: {
type: 'string',
default: 1000
}
}
}
}
app
.register(fastifyEnv, options)
.ready((err) => {
if (err) console.log(err)
console.log(app.config)
// output: { PORT: 1000 }
})
// hooks
app.addHook('onRoute', (routeOptions) => {
console.log(`Registered route: ${routeOptions.url}`)
})
// Declare a route
app.get('/', function(req, reply) {
reply.send({ hello: 'world' })
})
// Register routes to handle blog posts
const blogRoutes = require('./routes/blogs')
blogRoutes.forEach((route, index) => {
app.route(route)
})
// Run the server
app.listen(app.config.PORT, (err, address) => {
if (err) {
app.log.error(err)
process.exit(1)
}
app.log.info(`server listening on ${address}`)
})
Any suggestions? I noted that in the index.js here you have the port hard-coded rather than using the fastify-env plugin.
Thanks!
Metadata
Assignees
Labels
No labels
Activity