Get a person by the ID API [GET request]
If recognition.success was untrue we simply come back many techniques from the recognition and present they for the user with a reputation signal of 400 .
When all
Then we destruct firstName, lastName, sort from req.body and move those values to our UserModel.createUser . If everything goes appropriate, it merely comes back achievements: correct making use of the newer consumer produced and a status 200 .
Therefore all our company is undertaking here is incorporating a static method to our userSchema also known as createUser which will take in 3 details: firstName, lastName, means .
Right here the this parts is vital, since the audience is creating a fixed method on userSchema . Composing this will make sure we have been utilizing carrying out operations from the userSchema item
A very important factor to note let me reveal that userSchema.statics.createUser = async purpose (firstName, lastName, sort) => <> won’t run. If you are using an => arrow function the this context would be forgotten plus it don’t run.
If you wish to learn more about static means in mongoose, see this short but useful doctor sample right here.
Since we have everything set up, let’s start our terminal by operating this amazing demand into the venture’s root folder:
It is possible to get the whole postman API range from here so that you will do not need to compose the APIs regularly.
Awesome a€“ we simply ended up creating the very first API. Let’s make a couple of additional consumer APIs before we proceed to the chat part since there is no chat without customers (unless we have robots, but robots are customers nicely ?).
Next we have to write an API that gets all of us a user by the ID. Very for the course .get(‘/:id’, user.onGetUserById) let’s jot down the controller.
We go in an id parameter therefore wrap our very own features in try/catch . This is very important while you are using async/await . The lines to focus on listed here are these 2:
We need mongoose ‘s findOne way to get a hold of an entryway by id . We know that one product exists when you look at the collection from this id since the id is special. If no user is located we simply place one aided by the message No user with this id found .
Become all users API [GET consult]
Subsequent let us produce the static method for getUsers() in the models/User.js document. Below the last static way your had written in this document, means:
We use the mongoose technique labeled as await this.find(); receive all reports for our people range and return it.
Note: I’m not managing pagination in our customers API for the reason that it’s perhaps not the key focus here. We’ll talk about pagination after we push towards the talk APIs.
Delete a user by ID API [DELETE consult] (More of an additional benefit point, you are able to skip this if you would like)
Let us establish our last route to delete a user by their ID. For your path .delete(‘/:id’, user.onDeleteUserById) visit its controller in controllers/user.js and create this code during the onDeleteUserById() strategy:
We pass in the id right here as a factor and use the mongoose means called this.remove to erase a record items from a specific collection. In such a case, it’s the consumers range.
Next we’re going to manage how exactly to authenticate courses with an authentication token. This is actually the very last thing I want to touch on before moving on toward speak section a€“ because every one of the talk APIs are authenticated.
What are middlewares in ExpressJS?
Finding its way back to our rule base, let us establish a JWT middleware to authenticate all of our tracks. Visit middlewares/jwt.js and put the following: