Migrate project from typing_practiceweb

This commit is contained in:
2026-05-14 16:04:14 +08:00
parent dbc5425706
commit 0e87d5546d
225 changed files with 92811 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
import express from 'express';
import { CodeExample } from '../models/CodeExample';
const router = express.Router();
// 获取所有代码示例
router.get('/', async (req, res) => {
try {
const examples = await CodeExample.find().sort({ createdAt: -1 });
res.json(examples);
} catch (error) {
res.status(500).json({ message: 'Error fetching code examples' });
}
});
// 获取特定难度级别的代码示例
router.get('/:level', async (req, res) => {
try {
const { level } = req.params;
// 验证难度级别是否有效
const validLevels = ['basic', 'intermediate', 'advanced'];
if (!validLevels.includes(level)) {
return res.status(400).json({ message: '无效的代码难度级别' });
}
// 查找匹配难度级别的代码示例
const example = await CodeExample.findOne({ level }).sort({ createdAt: -1 });
if (!example) {
return res.status(404).json({ message: '未找到该难度级别的代码示例' });
}
// 返回代码示例内容
res.json({
content: example.content,
level: example.level,
title: example.title
});
} catch (error) {
console.error('获取代码示例错误:', error);
res.status(500).json({ message: '获取代码示例失败' });
}
});
// 创建新代码示例
router.post('/', async (req, res) => {
try {
const example = new CodeExample(req.body);
await example.save();
res.status(201).json(example);
} catch (error) {
res.status(500).json({ message: 'Error creating code example' });
}
});
// 更新代码示例
router.put('/:id', async (req, res) => {
try {
const example = await CodeExample.findByIdAndUpdate(
req.params.id,
req.body,
{ new: true }
);
res.json(example);
} catch (error) {
res.status(500).json({ message: 'Error updating code example' });
}
});
// 删除代码示例
router.delete('/:id', async (req, res) => {
try {
await CodeExample.findByIdAndDelete(req.params.id);
res.status(204).send();
} catch (error) {
res.status(500).json({ message: 'Error deleting code example' });
}
});
export default router;