78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
|
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}`);
|
|||
|
});
|