Before we dive into creating POST and GET routes, let's set up Fastify in a new Node.js project. Ensure you have Node.js and npm (Node Package Manager) installed on your machine, and follow these steps:
Initialize a new Node.js project:
$ mkdir fastify-app
$ cd fastify-app
$ npm init -y
Install Fastify:
$ npm install fastify --save
Creating a Basic Fastify Server:
Once Fastify is installed, let's create a basic server configuration to handle HTTP requests. Create an index.js file in your project directory and add the following code:
// index.js
const fastify = require('fastify')();
fastify.get('/', async (request, reply) => {
return { message: 'Welcome to my Fastify app!' };
});
fastify.post('/user', async (request, reply) => {
const { name, email } = request.body;
return { message: `Hello ${name} (${email})!` };
});
fastify.listen({ port: 3000 }, (err) => {
if (err) {
console.error(err);
process.exit(1);
}
console.log('Server is running on port 3000');
});
In the code snippet above, we created two routes: a GET route ("/") and a POST route ("/user"). The GET route simply returns a welcome message, while the POST route expects a JSON payload containing user data. You can customize these routes according to your application's requirements.
Let's run our server with:
$ node index.js
and give it a try by running curl:
$ curl http://localhost:3000
{"message":"Welcome to my Fastify app!"}
or let's post a JSON object to out /user route:
$ curl -X 'POST' \
'http://localhost:3000/user' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "user@example.com",
"name": "Foo"
}'
{"message":"Hello Foo (user@example.com)!"}
As you can see, it is quite easy and effective to create a Web backend server with node.js and fastify!
In the next post we will take a look at validating the input and output data with JSON schema.
Stay fast!
Top comments (1)
Hello ! Don't hesitate to put colors on your
codeblock
like this example for have to have a better understanding of your code 😎