const express = require('express'); const fs = require('fs'); const path = require('path'); const lib = require("./lib.js") const app = express(); const port = 3000; lib.fmkdir("mod") lib.fmkdir("log") // 处理GET请求,路径为/modid app.get('/modid', (req, res) => { // 从请求中获取modid和client参数 const { modid, client } = req.query; // 检查modid和client参数是否存在 if (!modid || !client) { return res.status(400).send('缺少必要的查询参数'); } // 检查client参数是否为有效值 const validClients = ['true', 'false', 'trlse']; if (!validClients.includes(client)) { return res.status(400).send('client参数值无效'); } // 获取服务器端当前时间戳 const uptime = Date.now(); // 构建包含参数的对象 const data = { modid: modid, uptime: uptime, client: client }; // 生成文件路径 const filePath = path.join(__dirname, 'mod', `${modid}.json`); // 检查文件是否已存在 if (fs.existsSync(filePath)) { return res.status(400).send('文件列表中已有Mod'); } // 将对象写入到JSON文件中 fs.writeFile(filePath, JSON.stringify(data, null, 2), (err) => { if (err) { return res.status(500).send('写入文件时发生错误'); } // 获取当前时间和用户IP const currentTime = new Date().toLocaleString(); const userIP = req.ip; // 日志信息 const logMessage = `[${currentTime}] {${userIP}} 提交 ${modid} 成功\n`; console.log(logMessage) // 获取今天的日期 const today = new Date().toISOString().slice(0, 10); const logFilePath = path.join(logDir, `${today}.log`); // 追加日志信息到日志文件 fs.appendFile(logFilePath, logMessage, (err) => { if (err) { console.error('写入日志文件时发生错误:', err); } }); // 返回成功消息给客户端 res.send('提交成功'); }); }); // 启动服务器并监听指定端口 app.listen(port, () => { console.log(`服务器正在运行在 http://localhost:${port}`); });