|
@@ -0,0 +1,68 @@
|
|
|
|
|
+const http = require('http');
|
|
|
|
|
+const fs = require('fs');
|
|
|
|
|
+const path = require('path');
|
|
|
|
|
+
|
|
|
|
|
+//mod:新增http服务,暂时未用到,代码暂留
|
|
|
|
|
+class HttpServer {
|
|
|
|
|
+ constructor() {
|
|
|
|
|
+ this.server = null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ start() {
|
|
|
|
|
+
|
|
|
|
|
+ const staticDir = path.join(__dirname, '../config'); // 从config文件中读取静态资源目录,默认为public目录
|
|
|
|
|
+
|
|
|
|
|
+ this.server = http.createServer((req, res) => {
|
|
|
|
|
+ let filePath = path.join(staticDir, req.url === '/' ? 'index.html' : req.url);
|
|
|
|
|
+ const extname = String(path.extname(filePath)).toLowerCase();
|
|
|
|
|
+ const mimeTypes = {
|
|
|
|
|
+ '.html': 'text/html',
|
|
|
|
|
+ '.js': 'text/javascript',
|
|
|
|
|
+ '.css': 'text/css',
|
|
|
|
|
+ '.json': 'application/json',
|
|
|
|
|
+ '.png': 'image/png',
|
|
|
|
|
+ '.jpg': 'image/jpg',
|
|
|
|
|
+ '.gif': 'image/gif',
|
|
|
|
|
+ '.wav': 'audio/wav',
|
|
|
|
|
+ '.mp4': 'video/mp4',
|
|
|
|
|
+ '.woff': 'application/font-woff',
|
|
|
|
|
+ '.ttf': 'application/font-ttf',
|
|
|
|
|
+ '.eot': 'application/vnd.ms-fontobject',
|
|
|
|
|
+ '.otf': 'application/font-otf',
|
|
|
|
|
+ '.svg': 'application/image/svg+xml'
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const contentType = mimeTypes[extname] || 'application/octet-stream';
|
|
|
|
|
+
|
|
|
|
|
+ fs.readFile(filePath, (error, content) => {
|
|
|
|
|
+ if (error) {
|
|
|
|
|
+ if (error.code === 'ENOENT') {
|
|
|
|
|
+ res.writeHead(404);
|
|
|
|
|
+ res.end('404 Not Found');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ res.writeHead(500);
|
|
|
|
|
+ res.end(`Server Error: ${error.code}`);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ res.writeHead(200, { 'Content-Type': contentType });
|
|
|
|
|
+ res.end(content, 'utf-8');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ const port = 7072; // 从config文件中读取端口号,默认为7072
|
|
|
|
|
+ this.server.listen(port, () => {
|
|
|
|
|
+ console.log(`HTTP Server running at http://localhost:${port}/`);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ stop() {
|
|
|
|
|
+ if (this.server) {
|
|
|
|
|
+ this.server.close(() => {
|
|
|
|
|
+ console.log('HTTP Server closed');
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+module.exports = HttpServer;
|