diff options
Diffstat (limited to 'src/node/src/server.js')
-rw-r--r-- | src/node/src/server.js | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/node/src/server.js b/src/node/src/server.js index a5a0ea2642..bdb4a56203 100644 --- a/src/node/src/server.js +++ b/src/node/src/server.js @@ -755,9 +755,16 @@ Server.prototype.addService = function(service, implementation) { } var impl; if (implementation[name] === undefined) { - common.log(grpc.logVerbosity.ERROR, 'Method handler for ' + - attrs.path + ' expected but not provided'); - impl = defaultHandler[method_type]; + /* Handle the case where the method is passed with the name exactly as + written in the proto file, instead of using JavaScript function + naming style */ + if (implementation[attrs.originalName] === undefined) { + common.log(grpc.logVerbosity.ERROR, 'Method handler ' + name + ' for ' + + attrs.path + ' expected but not provided'); + impl = defaultHandler[method_type]; + } else { + impl = _.bind(implementation[attrs.originalName], implementation); + } } else { impl = _.bind(implementation[name], implementation); } |