Let's learn how to write a NodeJS query function!
Remember: In JavaScript, functions with a callback are asynchronous. NodeJS query functions must contain a callback! That makes them asynchronous. It's a good thing too! You don't want simple JavaScript calucations waiting on a database call, unless they have to.
Any code that is dependent on our query, will be called inside our query's callback. The code doesn't have to be physically written inside. To make your code easier to read, you can factor out code on seperate pages. You probably want to start creating your own library.
➼ 'use strict'
-
Helps avoid common coding mistakes (e.g. forgetting the var before i)
➼ db
-
Connection variable saved in ./database/db.js
➼ db.query
-
Query function
'use strict';
db.query(statement,values,function(err,res){
if (err){
// code to execute if there is an error
}
else {
// code to execute if no error
var data = res.rows;
}
});
➼ Code that executes, if there is an error.
➼ Code that executes if the query is sucessful.
➼ data
-
I set data equal to res.rows. The data response object contatins a lot of properties.
res.rows contains returned data rows.
db.query's parameters
➼ statement
-
This is a string variable that contains our SQL statement.
➼ values
-
This is an array of paramaterized values (explained below).
values is an optional parameter.
➼ function(err,res)
-
This is the mandatory callback function. It is a function of err and res
function(err,res){} parameters
➼ err
-
If your query returns an error, it is returned here.
➼ res
-
If your query is sucessfully executed, the response
is returned here.
We parameterized to prevent against SQL injection attacks.
If your application includes a form with user input, a malicious user can use SQL statements to infiltrate your database. This might include stealing or deleting data.