diff --git a/lib/nodejs/test/server.js b/lib/nodejs/test/server.js
index 69519ab..acc0398 100644
--- a/lib/nodejs/test/server.js
+++ b/lib/nodejs/test/server.js
@@ -29,6 +29,7 @@
 var ThriftProtocols = require('thrift/protocol');
 var ThriftTest = require('./gen-nodejs/ThriftTest');
 var ThriftTestHandler = require('./test_handler').ThriftTestHandler;
+var ThriftTestHandlerPromise = require('./test_handler_promise').ThriftTestHandler;
 
 
 var program = require('commander');
@@ -37,10 +38,12 @@
   .option('-p, --protocol <protocol>', 'Set thift protocol (binary|json) [protocol]')
   .option('-t, --transport <transport>', 'Set thift transport (buffered|framed) [transport]')
   .option('--ssl', 'use ssl transport')
+  .option('--promise', 'test with promise style functions')
   .parse(process.argv);
 
 var protocol = undefined;
 var transport =  undefined;
+var handler = undefined;
 
 if (program.protocol === "binary") {
   protocol = ThriftProtocols.TBinaryProtocol;
@@ -60,6 +63,12 @@
   transport = ThriftTransports.TBufferedTransport;
 }
 
+if (program.promise) {
+  handler = ThriftTestHandlerPromise;
+} else {
+  handler = ThriftTestHandler;
+}
+
 var options = {
   protocol: protocol,
   transport: transport
@@ -69,9 +78,9 @@
   //ssl options
   options.key = fs.readFileSync(path.resolve(__dirname, 'server.key'));
   options.cert = fs.readFileSync(path.resolve(__dirname, 'server.crt'));
-  thrift.createSSLServer(ThriftTest, ThriftTestHandler, options).listen(9090);
+  thrift.createSSLServer(ThriftTest, handler, options).listen(9090);
 
 } else {
   //default
-  thrift.createServer(ThriftTest, ThriftTestHandler, options).listen(9090);
+  thrift.createServer(ThriftTest, handler, options).listen(9090);
 }
