mirror of
https://github.com/dqzboy/Docker-Proxy.git
synced 2026-07-03 14:35:24 +08:00
53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
// ... existing code ...
|
|
// 获取文档列表
|
|
app.get('/api/documentation', requireLogin, async (req, res) => {
|
|
try {
|
|
const docList = await getDocumentList();
|
|
res.json(docList);
|
|
} catch (error) {
|
|
console.error('获取文档列表失败:', error);
|
|
res.status(500).json({ error: '获取文档列表失败', details: error.message });
|
|
}
|
|
});
|
|
|
|
// 获取单个文档内容
|
|
app.get('/api/documentation/:id', requireLogin, async (req, res) => {
|
|
const docId = req.params.id;
|
|
console.log(`获取文档内容请求,ID: ${docId}`);
|
|
|
|
try {
|
|
// 获取文档列表
|
|
const docList = await getDocumentList();
|
|
|
|
// 查找指定ID的文档
|
|
const doc = docList.find(doc => doc.id === docId || doc._id === docId);
|
|
|
|
if (!doc) {
|
|
return res.status(404).json({ error: '文档不存在', docId });
|
|
}
|
|
|
|
// 如果文档未发布且用户不是管理员,则拒绝访问
|
|
if (!doc.published && !isAdmin(req.user)) {
|
|
return res.status(403).json({ error: '无权访问未发布的文档' });
|
|
}
|
|
|
|
// 获取文档完整内容
|
|
const docContent = await getDocumentContent(docId);
|
|
|
|
// 合并文档信息和内容
|
|
const fullDoc = {
|
|
...doc,
|
|
content: docContent
|
|
};
|
|
|
|
res.json(fullDoc);
|
|
} catch (error) {
|
|
console.error(`获取文档内容失败,ID: ${docId}`, error);
|
|
res.status(500).json({
|
|
error: '获取文档内容失败',
|
|
details: error.message,
|
|
docId
|
|
});
|
|
}
|
|
});
|
|
// ... existing code ...
|