介绍网站: https://vanblog.mereith.com/
行为:在进入博客的后台管理页面时候,要发送一个 get 请求给开发者的后端服务程序。
发现原因:
issue 里有人提到进入后台管理页面需要 30s 左右,我自己也发现进入后台管理页面很慢很慢,就去跟踪了下代码。
相关代码:
这里是自己部署的服务端处理来自/api/admin/meta 的请求的
https://github.com/Mereithhh/vanblog/blob/master/packages/server/src/controller/admin/meta/meta.controller.ts
这部分具体代码:
@ApiTags('meta')
@UseGuards(...AdminGuard)
@ApiToken
@Controller('/api/admin/meta')
export class MetaController {
constructor(private readonly metaProvider: MetaProvider) {}
@Get()
async getAllMeta(@Req() req: Request) {
const meta = await this.metaProvider.getAll();
const serverData = await getVersionFromServer();
const data = {
version: version,
latestVersion: serverData?.version || version,
updatedAt: serverData?.updatedAt || new Date(),
user: req.user,
baseUrl: meta.siteInfo.baseUrl,
enableComment: meta.siteInfo.enableComment || 'true',
allowDomains: process.env.VAN_BLOG_ALLOW_DOMAINS || '',
};
return {
statusCode: 200,
data,
};
}
}
其中有一条函数执行是 getVersionFromServer,这里就会发送请求了。
https://github.com/Mereithhh/vanblog/blob/master/packages/server/src/utils/getVersion.ts
import axios from 'axios';
export const getVersionFromServer = async () => {
try {
let { data } = await axios.get('https://api.mereith.com/vanblog/version');
data = data?.data || {};
if (!data?.version) {
return null;
}
return {
version: data.version,
updatedAt: data?.updatedAt || data?.upadtedAt,
};
} catch (err) {
return null;
}
};
其实也能理解开发者,可能后期要上收费主题啥的,要做验证。但是我个人已经把这个博客程序给卸载,vps 重装系统了。
Data, version, const, updatedat