feat: 完善采购申请流程 - 添加审批、执行、列表筛选排序功能
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import http from 'http';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const server = http.createServer((req, res) => {
|
||||
// 处理静态文件请求
|
||||
let filePath = '.' + req.url;
|
||||
|
||||
// 处理根路径
|
||||
if (filePath === './') {
|
||||
filePath = './index.html';
|
||||
}
|
||||
|
||||
// 获取文件扩展名
|
||||
const extname = String(path.extname(filePath)).toLowerCase();
|
||||
|
||||
// MIME类型映射
|
||||
const mimeTypes = {
|
||||
'.html': 'text/html',
|
||||
'.js': 'text/javascript',
|
||||
'.mjs': 'text/javascript',
|
||||
'.ts': 'text/javascript',
|
||||
'.tsx': 'text/javascript',
|
||||
'.css': 'text/css',
|
||||
'.json': 'application/json',
|
||||
'.png': 'image/png',
|
||||
'.jpg': 'image/jpg',
|
||||
'.gif': 'image/gif',
|
||||
'.svg': 'image/svg+xml',
|
||||
'.wav': 'audio/wav',
|
||||
'.mp4': 'video/mp4',
|
||||
'.woff': 'application/font-woff',
|
||||
'.ttf': 'application/font-ttf',
|
||||
'.eot': 'application/vnd.ms-fontobject',
|
||||
'.otf': 'application/font-otf',
|
||||
'.wasm': 'application/wasm'
|
||||
};
|
||||
|
||||
// 获取内容类型
|
||||
const contentType = mimeTypes[extname] || 'application/octet-stream';
|
||||
|
||||
// 读取文件
|
||||
fs.readFile(filePath, (error, content) => {
|
||||
if (error) {
|
||||
if(error.code == 'ENOENT') {
|
||||
// 对于HTML、TypeScript、JavaScript文件和根路径,返回index.html
|
||||
// 这样React的路由系统就可以处理这些请求
|
||||
const urlExt = path.extname(req.url);
|
||||
if (req.url.endsWith('.html') ||
|
||||
req.url === '/' ||
|
||||
!urlExt ||
|
||||
urlExt === '.ts' ||
|
||||
urlExt === '.tsx' ||
|
||||
urlExt === '.js' ||
|
||||
urlExt === '.mjs') {
|
||||
fs.readFile('./index.html', (error, content) => {
|
||||
res.writeHead(200, { 'Content-Type': 'text/html' });
|
||||
res.end(content, 'utf-8');
|
||||
});
|
||||
} else {
|
||||
res.writeHead(404, { 'Content-Type': 'text/plain' });
|
||||
res.end('File not found', 'utf-8');
|
||||
}
|
||||
}
|
||||
else {
|
||||
res.writeHead(500, { 'Content-Type': 'text/plain' });
|
||||
res.end('Server error: ' + error.code, 'utf-8');
|
||||
}
|
||||
}
|
||||
else {
|
||||
res.writeHead(200, { 'Content-Type': contentType });
|
||||
res.end(content, 'utf-8');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
const PORT = process.env.PORT || 3000;
|
||||
server.listen(PORT, () => {
|
||||
console.log(`Server running at http://localhost:${PORT}/`);
|
||||
});
|
||||
Reference in New Issue
Block a user