本文整理匯總了TypeScript中restify.Server.on方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Server.on方法的具體用法?TypeScript Server.on怎麽用?TypeScript Server.on使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類restify.Server
的用法示例。
在下文中一共展示了Server.on方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: registerHandledRouteTimingMetrics
export function registerHandledRouteTimingMetrics(server: Server, statsDOptions: StatsDOptions) {
let statsD: StatsD = new StatsD(statsDOptions);
let metricsKeyBuilder: MetricsKeyBuilder = new MetricsKeyBuilder();
let logger = new MetricsLogFactory(statsD, metricsKeyBuilder).createLogger();
server.on('after', (request: Request, response: Response, route: Route, error) => {
logger(request, response, route);
});
}
示例2: registerHandledRouteTimingMetrics
export function registerHandledRouteTimingMetrics(server: Server, statsLogger: DaptivStatsLogger) {
// A logger and apiStatKeyBuilder should NOT be created here, they should be provided by the caller.
let apiStatKeyBuilder = new ApiStatKeyBuilder();
let apiMetricsLogger = new ApiStatsLoggerFactory(statsLogger, apiStatKeyBuilder).createLogger();
server.on('after', (request: Request, response: Response, route: Route, error) => {
apiMetricsLogger(request, response, route);
});
}
示例3: resolve
return new Promise<number>((resolve, reject) => {
let nextPort = 0;
let tryCount = 0;
let maxTry = 10;
let currentPort = this.port;
this.server.on('listening', () => {
resolve(currentPort);
return;
});
this.server.on(
'error', (e: {code: string}) => {
switch (e.code) {
case 'EADDRINUSE':
tryCount++;
nextPort = this.port + tryCount;
this.server.close();
if (tryCount >= maxTry) {
reject(e);
return;
}
console.log(`Port in use, retrying on port ${nextPort}...`);
currentPort = nextPort;
if (this.hostname) {
this.server.listen(currentPort, this.hostname);
} else {
this.server.listen(currentPort);
}
return;
default:
reject(e);
return;
}
}
);
if (this.hostname) {
this.server.listen(this.port, this.hostname);
} else {
this.server.listen(this.port);
}
});
示例4: enableCORSFix
/**
* a crude CORS based on `Qwerios`' comment in
* https://github.com/mcavage/node-restify/issues/664
*
* See issues:
* https://github.com/mcavage/node-restify/issues/284 (closed)
* https://github.com/mcavage/node-restify/issues/664 (unresolved)
*
* @param additionalHeaders string[]
* @return void
*/
enableCORSFix(additionalHeaders: string[] = []): void {
/*************************************
Cors
**************************************/
this.server.use(restify.CORS());
let headers = [
"authorization",
"withcredentials",
"x-requested-with",
"x-forwarded-for",
"x-real-ip",
"user-agent",
"keep-alive",
"host",
"accept",
"connection",
"upgrade",
"content-type",
"dnt",
"if-modified-since",
"cache-control"
];
restify.CORS.ALLOW_HEADERS = [
...restify.CORS.ALLOW_HEADERS || [],
...headers,
...additionalHeaders || []
];
// Manually implement the method not allowed handler to fix failing
// preflights
this.server.on(
"MethodNotAllowed",
(request: Request, response: Response) => {
if (request.method.toUpperCase() !== "OPTIONS") {
response.send(new restify.MethodNotAllowedError());
return;
} else {
// Send the CORS headers
//
response.header("Access-Control-Allow-Credentials", true);
response.header(
"Access-Control-Allow-Headers",
restify.CORS.ALLOW_HEADERS.join(", ")
);
response.header(
"Access-Control-Allow-Methods",
"GET, HEAD, POST, PUT, DELETE, OPTIONS"
);
response.header(
"Access-Control-Allow-Origin",
request.headers.origin
);
response.header("Access-Control-Max-Age", 0);
response.header("Content-type", "text/plain charset=UTF-8");
response.header("Content-length", 0);
response.send(204);
}
}
);
}