Трябва да промените този ред:
var sqlDb = require('./DBLayer/db.js');
до
var sqlDb = require('./DBLayer/db.js').sqlDb;
или за да промените този ред:
exports.sqlDb = sql;
до
exports = sql;
Обяснение: В Node, когато го направите:var sqlDb = require('./DBLayer/db.js');
прави sqlDb exports
обект.
Така че във вашия код имате exports.sqlDb = sql
. Компилаторът е прав, експортите нямат функция за изпълнение. експортите имат само 1 променлива, exports.sqlDb
.
Бонус съвет: Ако наистина искате кодът ви да работи, без промяна app.js
можете да добавите това в края на вашия модул:
exports.execute=function(){
return sql.execute.call(sql,arguments)
}