const mysql = require('mysql'); const sanitizer = require('sanitizer'); const con = mysql.createConnection({ host: "localhost", user: "blog_user", password: "password", database: "blog_name" }); con.connect(function(err) { if (err) throw err; console.log("Connected!"); }); module.exports= { /** * Function used to query the database for records * * @param sqlStatement * @returns {Array} */ fetch : function(sqlStatement) { con.query(sqlStatement, function (err, result) { if (err) throw err; return result; }); return []; }, /** * Function used to use insert statements into the database * * Don't worry, the input gets sanitized * * @param sqlStatement * @return the id of the new record - if there is one */ insert : function(sqlStatement) { con.query(sanitizer.sanitize(sqlStatement), function (err, result) { if (err) { console.log(err); return 0; } return result.insertId; }); }, /** * Not to be mistaken for getPostData() in @file utils/utils.js, * this function extracts a post entry from the sql server * * @param requestURL url user used to request blog post * @return {*} the entry found in the data base -- if any */ getPost : function(requestURL) { var splitURL = requestURL.split("/"); var result_category = this.fetch("select * from categories " + "where url='" + splitURL[1] + "'"); if(result_category.length != 0) { var result_posts = this.fetch("select * from posts where" + "category_id='" + result_category[0].category_id + "' " + "and url='" + splitURL[2] + "'"); if(result_posts.length != 0) { return result_posts[0]; } } return 0; } };