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}`);
|
||
});
|