You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel部署Node.js+Express后端:动态创建文件夹失败求助

解决Vercel部署Node.js/Express时动态创建文件夹失效问题

问题本质

Vercel的Serverless函数运行环境中,process.cwd()指向的/var/task目录是只读的,不允许创建新文件或文件夹,这就是本地运行正常但线上报错ENOENT: no such file or directory的核心原因——代码试图在只读目录下创建tmp文件夹,自然无法执行。

解决方案

Vercel为Serverless函数提供了专属的可写临时目录,通过环境变量process.env.TMPDIR获取,这是运行时唯一允许写入的临时路径。修改代码如下:

const fse = require('fs-extra');
const path = require('path');

// 替换原路径为Vercel提供的可写临时目录
const targetDir = path.join(process.env.TMPDIR, folderName);
fse.mkdirsSync(targetDir);

注意事项

  • 该临时目录是会话级的:函数执行完成后,目录内的文件可能会被Vercel自动清理,不能用于持久化存储。
  • 本地开发兼容性:process.env.TMPDIR在本地环境(如macOS、Linux)也会自动指向系统临时目录,无需额外修改即可兼容本地测试。
  • 若需持久化文件,建议使用云存储服务(如Vercel Blob、AWS S3等)。

内容的提问来源于stack exchange,提问作者Hunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:44:57