If you have a project you remixed from Hello Node, Blank Node, Hello SQLite, or Blank SQLite before they were updated to use Fastify 4, you will need to carry out a few steps to get your app working for this framework update.
1. Update to Node 14
Fastify 4 requires a minimum of Node 14, so with your project open, in your package.json
, change Node 12 to 14:
Give Glitch a minute or so to carry out this update–keep your Logs open throughout the process to see its progress.
2. Update Fastify
In the package.json ADD PACKAGE dropdown, select the updated version of the Fastify package (it should be 4+).
Give Glitch a minute again to carry out the update.
3. Replace deprecated packages
A few packages have been deprecated and replaced for Fastify 4, so you'll need to remove and replace them manually in your package.json
.
If your project includes these, remove them:
fastify-static
point-of-view
fastify-formbody
In the package dropdown, search for the replacements and add them to your project:
@fastify/static
@fastify/view
@fastify/formbody
4. Update your Fastify server syntax
In server.js
, adjust your listen
function to pass any parameters inside an object.
Change this:
fastify.listen(process.env.PORT, '0.0.0.0', function(err, address) {
To this:
fastify.listen({ port: process.env.PORT, host: "0.0.0.0" }, function (err, address) {
5. Update dependency references
In your server.js
code, if you have references to the deprecated / replaced dependencies, update them:
fastify-formbody >
@fastify/formbody
fastify-static > @fastify/static
point-of-view > @fastify/view
6. Add return statements
Depending on your functionality, you may find the project doesn't behave as expected unless you add return
statements before calls to view
.
For example, in a Hello Node remix, you should replace the following line:
reply.view("/src/pages/index.hbs", params);
With this extended version:
return reply.view("/src/pages/index.hbs", params);
If you're in any doubt, check out the updated versions of the original apps!