我有2条路线test_01和test_02。 当请求到test_02路由时,如何访问路由test_01并获取其响应数据?
我不是在谈论从test_02到test_01的转发路由
server.route({
method: 'GET',
path: '/data/test_01',
handler: function (request, reply) {
reply('test_01')
}
})
server.route({
method: 'GET',
path: '/data/test_02',
handler: function (request, reply) {
// Get data from route '/data/test_01'
var test_01_data = ''
reply(test_01_data)
}
})
控制器
Index = function () {}
Index.prototype = {
test_01 : function (req, reply, data) {
reply('test_01')
},
test_02 : function (req, reply, data) {
reply('test_02')
}
}
module.exports = Index
答案 0 :(得分:0)
从处理程序中调用单独的控制器函数
var controllerfn = function(req,reply){
//do stuff
return 'test_01';
};
根据需要调用
server.route({
method: 'GET',
path: '/data/test_01',
handler: function (request, reply) {
reply(controllerfn(request,reply);
}
})
server.route({
method: 'GET',
path: '/data/test_02',
handler: function (request, reply) {
// Get data from route '/data/test_01'
var test_01_data = controllerfn(request,reply);
reply(test_01_data)
}
})
答案 1 :(得分:0)
如果要重用该路由而不进行另一个套接字连接,则可以inject到另一个路由。
server.route({
method: 'GET',
path: '/data/test_01',
handler: function (request, reply) {
reply('test_01')
}
})
server.route({
method: 'GET',
path: '/data/test_02',
handler: function (request, reply) {
// Get data from route '/data/test_01'
request.server.inject({
url: {
pathname: '/data/test_01'
}
}, (res) => {
var test_01_data = res.result;
return reply(test_01_data);
})
}
})