02 - Create Method
Last updated
Last updated
In this module, we're going to create a second endpoint that accepts a POST with data, matches the request with a model, passes the data to Postgres, and sends a response.
Here's the flow of what we will have after this module:
Don't be overwhelemed. Notice that we've added usage of our model and our database.
Now that we know a POST route works, let's add in our model and our database in another controller method. This time you'll need to import the test.js
model. You'll put the next controller method underneath the first one inside testcontroller.js
:
We import the test model and store it in TestModel
variable. It is convention to use Pascal casing (uppercase on both words) for a model class with Sequelize. You'll find this to be true in other programming languages as well.
testData
is going to have a fixed string that we'll use every time a POST request comes in.
We use the TestModel
variable to access the model that we are using. This will grant us access to the Test
model properties and to Sequelize methods.
.create()
is a Sequelize method that allows us to create an instance of the Test
model and send it off to the db, as long as the data types match the model.
We pass the value of testData
down to satisfy the key/value pair for the model. The string that we are sending will be the value that's stored in the variable. Currently, it is the string Test data for endpoint two
;
testdata
is the key in the object, and it represents the column being used in the table.
Let's test this code in Postman and do some more work that should clarify this process.
Make sure your server is running.
Open Postman.
Open a new request.
Change the dropdown to POST.
Enter the endpoint into the URL: http://localhost:3000/test/two
.
Press 'Send'.
You should see the following response:
Guess what? We also should have just persisted our data to Postgres. Let's check using the following steps:
1. Open PGAdmin. (The elephant)
2. Find your workoutlog
database.
3. Find Schemas
dropdown.
4. Navigate your way to Tables
.
5. You should see the tests
table.
6. Right click on it, then click View Data
-> View All Rows
.
7. You should see the following. Note that we have underlined all of these steps in the image:
In this module, the following flow is happening:
1. We make a POST request with Postman.
2. The router sends that request to the testcontroller
.
3. The testcontroller
method contains a variable called testData
that has a string in it.
4. Our testcontroller
method access the TestModel
.
5. We then use the Sequelize create()
method to create the object to be sent to the DB.
6. The object is sent and Postgres stores it.
7. The controller sends a response to Postman.
There is a lot going on now, but we still need to iterate and add more endpoints, routes, and controller steps to see how a full controller method should be built.