| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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;
|