Você deve alterar esta linha:
var sqlDb = require('./DBLayer/db.js');
para
var sqlDb = require('./DBLayer/db.js').sqlDb;
ou para alterar esta linha:
exports.sqlDb = sql;
para
exports = sql;
Explicação: No Node quando você faz:
var sqlDb = require('./DBLayer/db.js');
faz com que o sqlDb seja o exports
objeto. Então no seu código você tem
exports.sqlDb = sql
. O compilador está certo, as exportações não têm função de execução. as exportações têm apenas 1 var, exports.sqlDb
. Dica de bônus: Se você realmente quer que seu código funcione, sem alterar
app.js
você pode adicionar isso ao final do seu módulo:exports.execute=function(){
return sql.execute.call(sql,arguments)
}