我有一个服务处理程序来处理将cv上传到NEXTJS项目上的firebase存储。在开发阶段,当客户端向API发出请求时,一切都能正常工作。但在部署到vercel之后,有时API请求会产生504错误而失败。这是我的处理程序代码
async add(userId, { file }) {
const userService = new UserService();
const { url: urlImage, pathName } = await this.#firebaseStorageService.uploadFile({
file,
folder: this.#firebaseStorageService.folder.assets,
path: 'cv',
});
const user = await userService.getById(userId);
// if the user has already uploaded a cv
if (user.cv) {
// remove old cv if exist
const oldCv = await this.#getData({ field: '_id', value: user.cv.id });
// delete old cv on storage
await this.#firebaseStorageService.deleteFile(oldCv.path);
// rewrite old cv on db
oldCv.url = urlImage;
oldCv.path = pathName;
await oldCv.save();
return oldCv._id;
}
const newCv = new CV({
url: urlImage,
path: pathName,
});
const cv = await newCv.save();
await userService.addCV(userId, cv._id);
return cv._id;
}
在vercel中的用法选项卡下检查无服务器功能部分。它会让您清楚地了解执行过程中发生的超时情况。
无服务器功能的冷启动时间可能是发生这种情况的原因之一。还可能取决于无服务器功能运行的区域以及解析和响应所需的时间。