您好我正在使用nodejs上的hapi框架开发反向代理服务器,有两个简单的任务:
任务1没有问题,所有内容都可以通过预先设置正确缓存。但是对于任务2,它并不那么幸运,错误就像下面的
调试:内部,实现,错误 server-0错误:调用时无效的方法键:replacer Object.settings.cache.generateFunc.func中的server-0 [作为替换者](/home/jack/WebstormProjects/dcm-reverse-proxy/node_modules/hapi/lib/methods.js:145:51) server-0 at /home/jack/WebstormProjects/dcm-reverse-proxy/server.js:67:32 server-0 at /home/jack/WebstormProjects/dcm-reverse-proxy/node_modules/hapi/node_modules/catbox/node_modules/hoek/lib/index.js:850:22 _combinedTickCallback的server-0(internal / process / next_tick.js:67:7) server-0 at process._tickDomainCallback(internal / process / next_tick.js:122:9)
我终于发现服务器方法注册只能接受字符串参数来生成缓存ID,
//register
server.method('somemethod', proxyService.replacer, {
cache:{
cache: 'inMemCache',
expiresIn: 5 * 60 * 1000,
generateTimeout: 2000
}
});
//calling, argument1 and argument2 must be {string}
server.methods.somemethod(argument1, argument2, function(_error, _result, cached, _report){
...
});
只是想知道任何人之前遇到过这种情况,如果我想以不同的格式传递argument1和argument2我该怎么办?
先谢谢。
答案 0 :(得分:2)
我自己找到了答案,hapi服务器方法已经记录了:
生成自定义密钥
除了上述选项之外,您还可以根据传递给方法的参数传递用于生成键的自定义函数。如果你的方法只接受字符串,数字和布尔值的某种组合,hapi将为你生成一个理智的密钥。 但是,如果您的方法接受对象参数,则应指定一个将生成类似于以下 的键的函数。注意:传递给您的方法的任何参数都可用于generateKey方法,但不能用于回调。