Dovresti cambiare questa riga:
var sqlDb = require('./DBLayer/db.js');
a
var sqlDb = require('./DBLayer/db.js').sqlDb;
o per modificare questa riga:
exports.sqlDb = sql;
a
exports = sql;
Spiegazione: In Node quando lo fai:var sqlDb = require('./DBLayer/db.js');
fa in modo che sqlDb sia le exports
oggetto.
Quindi nel tuo codice hai exports.sqlDb = sql
. Il compilatore ha ragione le esportazioni non hanno la funzione di esecuzione. le esportazioni hanno solo 1 var, exports.sqlDb
.
Suggerimento bonus: Se vuoi davvero che il tuo codice funzioni, senza modificare app.js
puoi aggiungerlo alla fine del tuo modulo:
exports.execute=function(){
return sql.execute.call(sql,arguments)
}