Error.stackTraceLimit = Infinity; var cps = require('cps'); var db = require('../lib/node-mysql.js'); var DB = db.DB; var cb = function() { var handleError = function(e) { if (e.stack) { console.log(e.stack); } else { console.log(e); } }; var start = new Date(); return function(err, res) { try { var end = new Date(); console.log('time spent: ', end-start); if (err) { handleError(err); } else { console.log(res); } box.end(); } catch(e) { handleError(e); box.end(); } }; }(); var box = new DB({ host : 'localhost', user : 'root', password : '', database : 'workr-main-service', connectionLimit: 50, useTransaction: { connectionLimit: 1 }, useCursor: { connectionLimit: 1 } }); var basicTest = function(cb) { box.transaction(null, function(conn, cb) { cps.seq([ function(_, cb) { conn.query('select * from user_profiles limit 1', cb); }, function(res, cb) { console.log(res); cb(); } ], cb); }, cb); }; var scehmaTest = function(cb) { box._prepare(cb); }; var cursorTest = function(cb) { box.connect(function(boxConn, cb) { var q = 'select * from user_profiles'; box.cursor(q, function(row, cb) { // boxConn.query(q, cb); // throw new Error('foobar'); console.log(row); cb(); }, function(err, res) { if (err) { console.log(err); } cb(err, res); }); }, cb); }; var modelTest = function(cb) { box.add({ name: 'coupons', idFieldName: 'coupon_id' }) ; box.add({ name: 'products', idFieldName: 'product_id' }) ; var oldBox = box; box = box.clone(); box.extend({ name: 'coupons', Row: { getDiscountType: function() { return this._data['discount_type']; } } }) .linksTo({ name: 'product', table: 'products', key: 'product_id' }) ; var Coupon = box.get('coupons').Table; box.connect(function(conn, cb) { cps.seq([ function(_, cb) { var q = Coupon.baseQuery('where product_id is not null limit 1'); Coupon.find(conn, q, cb); }, function(coupons, cb) { cps.pmap(coupons, function(coupon, cb) { // coupon.linksTo(conn, 'product', cb); cb(null, coupon.getDiscountType()); }, cb); } ], cb); }, cb); }; cps.rescue({ 'try': function(cb) { cursorTest(cb); }, 'catch': function(err, cb) { console.log('cps exception caught'); throw err; } }, cb);