保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// Type definitions for connect v3.4.0
// Project: https://github.com/senchalabs/connect
// Definitions by: Maxime LUCE <https://github.com/SomaticIT>
//                 Evan Hahn <https://github.com/EvanHahn>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
 
/// <reference types="node" />
 
 
import * as http from "http";
 
/**
 * Create a new connect server.
 */
declare function createServer(): createServer.Server;
 
declare namespace createServer {
    export type ServerHandle = HandleFunction | http.Server;
 
    export class IncomingMessage extends http.IncomingMessage {
        originalUrl?: http.IncomingMessage["url"];
    }
 
    type NextFunction = (err?: any) => void;
 
    export type SimpleHandleFunction = (req: IncomingMessage, res: http.ServerResponse) => void;
    export type NextHandleFunction = (req: IncomingMessage, res: http.ServerResponse, next: NextFunction) => void;
    export type ErrorHandleFunction = (err: any, req: IncomingMessage, res: http.ServerResponse, next: NextFunction) => void;
    export type HandleFunction = SimpleHandleFunction | NextHandleFunction | ErrorHandleFunction;
 
    export interface ServerStackItem {
        route: string;
        handle: ServerHandle;
    }
 
    export interface Server extends NodeJS.EventEmitter {
        (req: http.IncomingMessage, res: http.ServerResponse, next?: Function): void;
 
        route: string;
        stack: ServerStackItem[];
 
        /**
        * Utilize the given middleware `handle` to the given `route`,
        * defaulting to _/_. This "route" is the mount-point for the
        * middleware, when given a value other than _/_ the middleware
        * is only effective when that segment is present in the request's
        * pathname.
        *
        * For example if we were to mount a function at _/admin_, it would
        * be invoked on _/admin_, and _/admin/settings_, however it would
        * not be invoked for _/_, or _/posts_.
        */
        use(fn: NextHandleFunction): Server;
        use(fn: HandleFunction): Server;
        use(route: string, fn: NextHandleFunction): Server;
        use(route: string, fn: HandleFunction): Server;
 
        /**
        * Handle server requests, punting them down
        * the middleware stack.
        */
        handle(req: http.IncomingMessage, res: http.ServerResponse, next: Function): void;
 
        /**
        * Listen for connections.
        *
        * This method takes the same arguments
        * as node's `http.Server#listen()`.
        *
        * HTTP and HTTPS:
        *
        * If you run your application both as HTTP
        * and HTTPS you may wrap them individually,
        * since your Connect "server" is really just
        * a JavaScript `Function`.
        *
        *      var connect = require('connect')
        *        , http = require('http')
        *        , https = require('https');
        *
        *      var app = connect();
        *
        *      http.createServer(app).listen(80);
        *      https.createServer(options, app).listen(443);
        */
        listen(port: number, hostname?: string, backlog?: number, callback?: Function): http.Server;
        listen(port: number, hostname?: string, callback?: Function): http.Server;
        listen(path: string, callback?: Function): http.Server;
        listen(handle: any, listeningListener?: Function): http.Server;
    }
}
 
export = createServer;