Few previous answers that should help you
Express.JS + Node-Mysql and 1 connection per http request
How to query mysql before starting http server in nodejs
get simple info from db into a node.js http server response
to use pools in mysql
Node.js MySQL Needing Persistent Connection
A more little complex solution separate your code into files and put the db code either in db.js or in reponse handler or router.
My code is using pools.
Save to the five files
then run npm install
e.g
(please excuse the terrible formatting)
// requestHandlers.js
// request handler with mysql code
var mysql = require("mysql");
var Query1 = "SELECT * from Tablexyz WHERE xx = 'doh'";
var body = '<html>'+
'<head>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'<h1> Query </h1>';
var body1 = '</body>'+
'</html>';
var pool = mysql.createPool({
host : 'host',
user : 'dbuser',
password : "pword",
database : 'database',
connectionLimit: 10,
queueLimit: 10
});
function qquery(callback){
console.log('in qquery');
pool.getConnection(function(err, connection) {
pool.query( Query1 , function(err, rows ,fields) {
if (err) {
return callback(new Error("An error has occured" + err));
}
if (rows.length > 0){
callback( rows);
connection.release();
}
});
});
}
function start(response) {
console.log("Request handler 'start' was called.");
qquery( function (rows , err) {
if (err) {
console.log(err);
}
else{
console.log(rows);
response.writeHead(200, {"Content-Type": "text/html"});
response.write(body);
response.write( 'query: ' + JSON.stringify( rows ) );
response.write(body1);
response.end();
}
});
}
exports.start = start;
///////////////////////////////////- new file
//server.js
var http = require("http");
var url = require("url");
function start(route, handle) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
route(handle, pathname, response);
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
///////////////////////////////////-new file
// router.js
function route(handle, pathname, response) {
console.log("About to route a request for " + pathname);
if (typeof handle[pathname] === 'function') {
handle[pathname](response);
} else {
console.log("No request handler found for " + pathname);
response.writeHead(404, {"Content-Type": "text/plain"});
response.write("404 Not found");
response.end();
}
}
exports.route = route;
///////////////////////////////////- new file
//index.js
var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);
///////////////////////////////////- new file
//package.json
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies":
{
"express": "3.4.0",
"jade": "*",
"stylus": "*",
"mysql": "*"
}
}