feat:新增背景音乐设置,音乐切换功能
This commit is contained in:
49
server.js
49
server.js
@@ -138,6 +138,30 @@ app.get('/api/musicConfig', (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
// ===================== 新增:获取已上传音乐列表API =====================
|
||||
app.get('/api/music/list', (req, res) => {
|
||||
try {
|
||||
// 音乐文件存储目录(和之前配置的一致)
|
||||
const musicDir = path.join(__dirname, 'public', 'assets', 'music');
|
||||
// 先判断目录是否存在,避免报错
|
||||
if (!fs.existsSync(musicDir)) {
|
||||
return res.json({ success: true, data: [] });
|
||||
}
|
||||
// 读取目录下的所有MP3文件
|
||||
const files = fs.readdirSync(musicDir).filter(file => file.endsWith('.mp3'));
|
||||
// 返回文件名+访问路径
|
||||
const musicList = files.map(file => ({
|
||||
filename: file,
|
||||
filePath: `/assets/music/${file}`
|
||||
}));
|
||||
res.json({ success: true, data: musicList });
|
||||
} catch (error) {
|
||||
console.error('读取音乐列表失败:', error);
|
||||
res.status(500).json({ success: false, error: '读取音乐列表失败' });
|
||||
}
|
||||
});
|
||||
// ===================== 新增结束 =====================
|
||||
|
||||
// API: 更新音乐配置(仅更新musicConfig节点,不影响其他配置)
|
||||
app.post('/api/musicConfig', (req, res) => {
|
||||
try {
|
||||
@@ -200,6 +224,31 @@ app.post('/api/upload/music', musicUpload.single('musicFile'), (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
// ===================== 兼容前端旧路径 /upload-music =====================
|
||||
app.post('/upload-music', (req, res) => {
|
||||
musicUpload.single('musicFile')(req, res, (err) => {
|
||||
if (err) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
error: err.message || '音乐文件上传失败'
|
||||
});
|
||||
}
|
||||
if (!req.file) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
error: '没有选择要上传的音乐文件'
|
||||
});
|
||||
}
|
||||
const relativePath = `/assets/music/${req.file.filename}`;
|
||||
res.json({
|
||||
success: true,
|
||||
filePath: relativePath,
|
||||
filename: req.file.filename,
|
||||
originalName: req.file.originalname
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// ===================== 原有图片上传/删除API(保留) =====================
|
||||
// API: 上传图片
|
||||
app.post('/api/upload', imageUpload.single('image'), (req, res) => {
|
||||
|
||||
Reference in New Issue
Block a user