socket.io - Node.js and global MySQL connection OBJ -


i'm beginner node.js, ever ok use mysql global var?

i have db_helper.js code inside:

global.client = require('mysql').createconnection({     user: '__mysqluser__',     password: '__mysqlpass__',     database: '__mysqldb__',     timezone: '-03:00' }); global.client.connect(); 

on main.js a:

require('db_helper'); 

then on other js files, whenever need update or select call:

global.client(query, data); 

i haven't seen code yet, works expected, i'm experiencing random crashes time time, when reloading pages.

is ok use this? crashes related way connect db?

i think it's related because when crash happens, because mysql fails return data, crash happens when parsing result, like:

global.client.query(query, function(err, results, fields) {    if (err) throw err;    if (results && object.prototype.tostring.call(results) === '[object array]') {       var j = result[0].data;     } } 

most of time, var j has value expect have, when node crashes, var returns empty, despite fact checks (results) consistency before. node crashes saying:

result[0].data undefined 

thanks.

edit: crash happens whenever client js file gets updated on server. (after local edit of .js file & server upload via ftp), why?

a more common approach, instead of storing stuff in global (which makes obscure code, imo), export it:

// db_helper.js var client = module.exports = require('mysql').createconnection({     user: '__mysqluser__',     password: '__mysqlpass__',     database: '__mysqldb__',     timezone: '-03:00' }); client.connect();  // somewhere else var client = require('db_helper'); 

the reason why code crashes you're not checking empty array:

client.query(query, function(err, results, fields) {    if (err) throw err;    if (results.length) { // don't need check if it's array      var j = results[0].data;      ...    } } 

as reason: guess query you're running gives different results (or rather, no results) on server.


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -