Fix server.method

This commit is contained in:
Shinya Ohira 2014-11-07 23:31:02 +09:00
parent b9b6d6b3d5
commit 6d9f08eda8
2 changed files with 32 additions and 2 deletions

View File

@ -25,6 +25,36 @@ server.pack.register([plugin], (err: Object) => {
if (err) { throw err; }
});
// Add server method
var add = function (a: number, b: number, next: (err: any, result?: any, ttl?: number) => void) {
next(null, a + b);
};
server.method('sum', add, { cache: { expiresIn: 2000 } });
server.methods.sum(4, 5, (err: any, result: any) => {
console.log(result);
});
var addArray = function (array: Array<number>, next: (err: any, result?: any, ttl?: number) => void) {
var sum: number = 0;
array.forEach((item: number) => {
sum += item;
});
next(null, sum);
};
server.method('sumObj', addArray, {
cache: { expiresIn: 2000 },
generateKey: (array: Array<number>) => {
return array.join(',');
}
});
server.methods.sumObj([5, 6], (err: any, result: any) => {
console.log(result);
});
// Add the route
server.route({
method: 'GET',

4
hapi/hapi.d.ts vendored
View File

@ -279,7 +279,7 @@ declare module Hapi {
export class Server {
app: any;
methods: Array<() => void>;
methods: any;
info: {
port: number;
host?: string;
@ -336,7 +336,7 @@ declare module Hapi {
};
ext(event: any, method: string, options?: any): void;
method(method: Array<{name: string; fn: () => void; options: any}>): void;
method(name: string, fn: () => void, options: any): void;
method(name: string, fn: Function, options: any): void;
inject(options: any, callback: any): void;
handler(name: string, method: (name: string, options: any) => void): void;
}