本文整理汇总了TypeScript中on-finished类的典型用法代码示例。如果您正苦于以下问题:TypeScript on-finished类的具体用法?TypeScript on-finished怎么用?TypeScript on-finished使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了on-finished类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: return
return (req: IExpressRequest, res: IExpressResponse, next: NextFn) => {
let startTime = new Date().getTime();
let ctx = new HttpContext(req, res);
req.access_uuid = uuid.v4();
// tslint:disable-next-line
logger.info(`[${req.access_uuid}] <== '${ctx.method()} ${ctx.url()}' ${ctx.remoteAddr()} HTTP/${ctx.httpVersion()} ${ctx.userAgent()}`);
onFinished(res, (err) => {
let reqTime = ((new Date().getTime()) - startTime) / 1000;
// tslint:disable-next-line
// _debugger.info(`${ctx.remoteAddr()}- '${ctx.method()} ${ctx.url()} HTTP/${ctx.httpVersion()}' ${ctx.status()} ${ctx.resHeader('content-length')} ${ctx.userAgent()}`);
// tslint:disable-next-line
logger.info(`[${req.access_uuid}] ==> ${ctx.status()} length:${ctx.resHeader('content-length')} time:${reqTime}s`);
if (err) {
logger.warn(`detected error coming from 'onFinished' on logger.middleware module: ${err.message}`);
logger.error(err);
}
});
next();
};
示例2: request
// Request Logging
// --------------------------------------------------------------------------------------------
request(request: http.IncomingMessage, response: http.ServerResponse) {
const start = process.hrtime();
onFinished(response, () => {
const line = buildRequestLine(request, response, since(start), this.fOptions.request);
this.logToConsole(line, ConsoleStream.info);
});
}
示例3: default
export default (core: Core) => (req: Request, res: Response, next) => {
const ip = proxyaddr(req, () => true);
const ctx = core.capture({
date: new Date(),
url: `${req.protocol}://${req.hostname}${req.originalUrl}`,
ip: ip,
httpVersion: req.httpVersion,
method: req.method,
headers: req.headers
}, (status, body) => {
if (body == null || body == '') {
res.sendStatus(status);
} else {
res.status(status).send(body);
}
}, next);
onFinished(res, () => {
ctx.done(res.statusCode);
});
};
示例4: send
// HELPER FUNCTIONS
// =================================================================================================
function send(request: IncomingMessage, response: ServerResponse, status: number, headers: { [index: string]: string; }, body: string) {
function write () {
// response status
response.statusCode = status;
// response.statusMessage = STATUS_CODES[status];
// response headers
if (headers) {
for (let key in headers) {
response.setHeader(key, headers[key]);
}
}
// standard headers
response.setHeader('Content-Type', 'application/json; charset=utf-8')
response.setHeader('Content-Length', Buffer.byteLength(body, 'utf8').toString(10));
if (request.method === 'HEAD') {
response.end();
}
else {
response.end(body, 'utf8');
}
}
if (onFinished.isFinished(request)) {
write();
}
else {
// unpipe everything from the request
request.unpipe();
// flush the request
onFinished(request, write);
request.resume();
}
}
示例5: HttpLogMiddleware
export function HttpLogMiddleware(req, res, next) {
// request data
req._startAt = undefined
req._startTime = undefined
req._remoteAddress = getIP(req)
// response data
res._startAt = undefined
res._startTime = undefined
// record request start
recordStartTime.call(req)
// record response start
onHeaders(res, recordStartTime)
// log when response finished
onFinished(res, () => {
doLog(req, res)
})
next()
}