本文整理汇总了TypeScript中hapi-latest.Server.route方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Server.route方法的具体用法?TypeScript Server.route怎么用?TypeScript Server.route使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类hapi-latest.Server
的用法示例。
在下文中一共展示了Server.route方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: setupRoutes
private setupRoutes({
blockUntil,
shouldRedirectFromOldBasePath,
}: Readonly<BasePathProxyServerOptions>) {
if (this.server === undefined) {
throw new Error(`Routes cannot be set up since server is not initialized.`);
}
// Always redirect from root URL to the URL with basepath.
this.server.route({
handler: (request, responseToolkit) => {
return responseToolkit.redirect(this.httpConfig.basePath);
},
method: 'GET',
path: '/',
});
this.server.route({
handler: {
proxy: {
agent: this.httpsAgent,
host: this.server.info.host,
passThrough: true,
port: this.devConfig.basePathProxyTargetPort,
protocol: this.server.info.protocol,
xforward: true,
},
},
method: '*',
options: {
pre: [
// Before we proxy request to a target port we may want to wait until some
// condition is met (e.g. until target listener is ready).
async (request, responseToolkit) => {
await blockUntil();
return responseToolkit.continue;
},
],
},
path: `${this.httpConfig.basePath}/{kbnPath*}`,
});
// It may happen that basepath has changed, but user still uses the old one,
// so we can try to check if that's the case and just redirect user to the
// same URL, but with valid basepath.
this.server.route({
handler: (request, responseToolkit) => {
const { oldBasePath, kbnPath = '' } = request.params;
const isGet = request.method === 'get';
const isBasepathLike = oldBasePath.length === 3;
return isGet && isBasepathLike && shouldRedirectFromOldBasePath(kbnPath)
? responseToolkit.redirect(`${this.httpConfig.basePath}/${kbnPath}`)
: responseToolkit.response('Not Found').code(404);
},
method: '*',
path: `/{oldBasePath}/{kbnPath*}`,
});
}
示例2: setupProxyListener
private setupProxyListener(server: HapiServer) {
const legacyProxy = new LegacyPlatformProxy(
this.logger.get('legacy', 'proxy'),
server.listener
);
// We register Kibana proxy middleware right before we start server to allow
// all new platform plugins register their routes, so that `legacyProxy`
// handles only requests that aren't handled by the new platform.
server.route({
path: '/{p*}',
method: '*',
options: {
payload: {
output: 'stream',
parse: false,
timeout: false,
// Having such a large value here will allow legacy routes to override
// maximum allowed payload size set in the core http server if needed.
maxBytes: Number.MAX_SAFE_INTEGER,
},
},
handler: async ({ raw: { req, res } }, responseToolkit) => {
if (this.kbnServer === undefined) {
this.log.debug(`Kibana server is not ready yet ${req.method}:${req.url}.`);
// If legacy server is not ready yet (e.g. it's still in optimization phase),
// we should let client know that and ask to retry after 30 seconds.
return responseToolkit
.response('Kibana server is not ready yet')
.code(503)
.header('Retry-After', '30');
}
this.log.trace(`Request will be handled by proxy ${req.method}:${req.url}.`);
// Forward request and response objects to the legacy platform. This method
// is used whenever new platform doesn't know how to handle the request.
legacyProxy.emit('request', req, res);
return responseToolkit.abandon;
},
});
return legacyProxy;
}