db.once('open', function () { console.log("Get passport...") let passport = require("./passport"); console.log("Add middleware..."); let app = express(); if (process.env.NODE_ENV === 'production') { require('express-http2-workaround')({ express: express, http2: http2, app: app });///Fix http2 and express compatibility. } let st = [__dirname, ...config.staticLocation] if (process.env.NODE_ENV === 'production') { app.use(express.static(path.join(...st))); } let sessionOpts = { saveUninitialized: true, // saved new sessions resave: false, // do not automatically write to the session store store: new MongoStore({ mongooseConnection: mongoose.connection }), secret: config.db.secret, cookie: { httpOnly: true, maxAge: 2419200000 } // configure when sessions expires } app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })) app.use(cookieParser(config.db.secret)) app.use(flash())//This is how we setup flash fail authentication. app.use(session(sessionOpts)); app.use(passport.initialize());///Attach passport to express middleware. app.use(passport.session()); if (config.jsTogz) { app.get('*.js', function (req, res, next) { req.url = req.url + '.gz'; res.set('Content-Encoding', 'gzip'); next(); }); } console.log("Add routes..."); require('./routes/index')(app, passport); console.log(""); let options = { key: fs.readFileSync(config.ssl.key), cert: fs.readFileSync(config.ssl.cert) }; if (process.env.NODE_ENV === 'production') { http2.createServer(options, app).listen(config.port, (error) => { if (error) { console.error(error) return process.exit(1) } else { console.log('Listening on port: ' + config.port + '.') } }); } else { http.createServer(app).listen(config.port, (error) => { if (error) { console.error(error) return process.exit(1) } else { console.log('Listening on port: ' + config.port + '.') } }); } });
const options3: ServerStreamFileResponseOptionsWithError = { onError: (err: NodeJS.ErrnoException) => {}, statCheck: (stats: Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions) => {}, getTrailers: (trailers: OutgoingHttpHeaders) => {}, offset: 0, length: 0 }; serverHttp2Stream.respondWithFile(''); serverHttp2Stream.respondWithFile('', headers); serverHttp2Stream.respondWithFile('', headers, options3); serverHttp2Stream.respondWithFile('', headers, {statCheck: () => false}); } // Http2Server / Http2SecureServer { const http2Server: Http2Server = createServer(); const http2SecureServer: Http2SecureServer = createSecureServer(); const s1: Server = http2Server; const s2: Server = http2SecureServer; [http2Server, http2SecureServer].forEach((server) => { server.on('sessionError', (err: Error) => {}); server.on('checkContinue', (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => {}); server.on('stream', (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => {}); server.on('request', (request: Http2ServerRequest, response: Http2ServerResponse) => {}); server.on('timeout', () => {}); }); http2SecureServer.on('unknownProtocol', (socket: TLSSocket) => {}); } // Public API (except constants)
// Configuration. let port: Number = 8011; let host: string = "localhost"; let hostUrl: string = "https://" + host + ":" + port; let key = fs.readFileSync('./test/http2-certs/localhost.key'); let cert = fs.readFileSync('./test/http2-certs/localhost.crt'); // ---------------------------------------------------------------------------- // Create HTTP/2 server, start listening. // ---------------------------------------------------------------------------- let server = http2.createServer( { key: key, cert: cert }, (req, res) => { log.info("request received."); res.end(); }); server.listen(process.env.HTTP2_PORT || port); // ---------------------------------------------------------------------------- // Create HTTP/2 client. // ---------------------------------------------------------------------------- http2.globalAgent = new http2.Agent({ rejectUnauthorized: false });