UNPKG

node-web-mvc

Version:
49 lines (48 loc) 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** * @module ServletNodeContext * @description node原生框架接入上下文实现 */ const http_1 = __importDefault(require("http")); const https_1 = __importDefault(require("https")); const http2_1 = __importDefault(require("http2")); class NodeNativeConnector { createServer(config, handler) { switch (config.httpType) { case 'https': return https_1.default.createServer(config, handler); case 'http2': return http2_1.default.createServer(config, handler); default: return http_1.default.createServer(config, handler); } } connect(handler, config) { return new Promise((resolve, reject) => { const server = this.createServer(config, (req, res) => { Object.defineProperty(req, 'path', { value: req.url }); handler(req, res, (err) => { if (err) { console.error(err.stack || err); res.writeHead(500).end('internal error'); } else { res.writeHead(404).end(); } }); }); server.on('clientError', (err, socket) => { socket.end('HTTP/1.1 400 Bad Request\r\n\r\n'); }); server.listen(config.port, () => { resolve(server); }); server.on('error', reject); }); } } exports.default = NodeNativeConnector;