55 lines
1.7 KiB
JavaScript

const express = require('express');
const utils = require('../../utils.js');
const router = express.Router();
router.get('/', (req, res, next) => {
// 读取文件夹列表
const files = fs.readdirSync(path.join(FILE_PATH));
let data = [];
files.forEach((fileName) => {
const filePath = path.join(FILE_PATH, fileName);
const stats = fs.statSync(filePath);
if (stats.isDirectory()) {
// 如果是文件夹,递归遍历
// data.push({
// fileName: fileName,
// filePath: fileName,
// isFolder: true,
// fileSize: stats.size,
// modifyTime: stats.mtime.toLocaleString()
// })
} else {
// 如果是文件,执行操作
data.push({
fileName: fileName,
filePath: fileName,
isFolder: false,
fileSize: stats.size,
modifyTime: stats.mtime.toLocaleString()
})
}
})
fs.writeFileSync(path.join(FILE_DATA_PATH, 'files.json'), JSON.stringify(data));
res.json(data);
})
router.get('/:filename', function(req, res, next) {
const filename = req.params.filename;
console.log(filename);
data = JSON.parse(fs.readFileSync(path.join(FILE_DATA_PATH, 'files.json')));
data.getItems = (fileName) => {
return data.find((item) => {
return item.fileName === fileName;
})
}
var item = data.getItems(filename);
console.log(item);
if (item.isFolder == false) {
res.sendFile(path.join(FILE_PATH, filename));
} else {
res.location('/index.html');
}
});
module.exports = router;