55 lines
1.7 KiB
JavaScript
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; |