本文整理匯總了TypeScript中restify.Server類的典型用法代碼示例。如果您正苦於以下問題:TypeScript Server類的具體用法?TypeScript Server怎麽用?TypeScript Server使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Server類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: constructor
constructor(server: Server) {
server.get('/', serveStatic({
directory: resolve('./public'),
file: 'index.html'
}));
server.get(/\/__client__\/?.*/, serveStatic({
directory: resolve('./')
}));
}
示例2: 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);
});
}
示例3: 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);
});
}
示例4: require
import logger from "./logging.config";
import * as restify from "restify";
import {Server} from "restify";
import {registerActionsInExpressApp} from "controllers.ts/Factory";
import {ControllerRunner} from "controllers.ts/ControllerRunner";
let config = require("../../package.json");
let port = process.env.PORT || 3000;
let host = process.env.HOST || "localhost";
logger.info("Setting up restify...");
const server: Server = restify.createServer({
name: config.name,
version: config.version
});
server.pre(restify.pre.sanitizePath());
const controllerRunner: ControllerRunner = registerActionsInExpressApp(server, [__dirname + "/../api"]);
controllerRunner.container = {
get: function (someClass: any): any {
logger.info("Setting up restify...");
return kernel.get(someClass.name);
}
};
server.listen(port, host, () => logger.info(`${server.name}@${config.version} listening at ${host}:${port}`));
示例5: initialize
public initialize(server: Server): void {
server.get('/products', this.listProducts.bind(this));
server.post('/products', this.addProduct.bind(this));
}
示例6: test
function test(server: Server) {
server.get('/api/test', (req: Request, res: Response) => {
res.setCookie('myCookie', 'test' + req.cookies.foo, { path: '/' });
});
}
示例7: 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);
}
});
示例8: Error
addRoute(
method: string,
route: string,
endpoint: RequestHandler
): void {
method = method.toUpperCase();
switch (method) {
case 'DELETE':
case 'DEL':
this.server.del(route, endpoint);
break;
case 'HEAD':
this.server.head(route, endpoint);
break;
case 'PUT':
this.server.put(route, endpoint);
break;
case 'POST':
this.server.post(route, endpoint);
break;
case 'OPTIONS':
this.server.opts(route, endpoint);
break;
case 'GET':
this.server.get(route, endpoint);
break;
default:
throw new Error(`HTTP-Method ${method} is not implemented!`);
}
};
示例9: switch
'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;
}
}
示例10: 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);
}
}
);
}