小编JMR*_*Dev的帖子

在 Vercel 上部署的 NextJS 的 API 路由上使用文件系统

我需要在 NextJS 中的 API 路由上使用 fileStystem 方法作为 readdirSync。它在本地工作,但部署在 Vercel 上时,请求会以 500 状态代码进行响应。

\n

这是 Vercel 的功能日志:

\n
catch Error: ENOENT: no such file or directory, scandir \'/var/task/_posts\'\n    at Object.readdirSync (fs.js:1043:3)\n    at getAllArticles (/var/task/.next/server/chunks/230.js:135:67)\n    at __WEBPACK_DEFAULT_EXPORT__ (/var/task/.next/server/pages/api/search.js:37:93)\n    at Object.apiResolver (/var/task/node_modules/next/dist/server/api-utils.js:101:15)\n    at processTicksAndRejections (internal/process/task_queues.js:95:5)\n    at async Server.handleApiRequest (/var/task/node_modules/next/dist/server/next-server.js:770:9)\n    at async Object.fn (/var/task/node_modules/next/dist/server/next-server.js:661:37)\n    at async Router.execute (/var/task/node_modules/next/dist/server/router.js:205:32)\n    at async Server.run (/var/task/node_modules/next/dist/server/next-server.js:841:29)\n    at async Server.handleRequest (/var/task/node_modules/next/dist/server/next-server.js:292:20) {\n  errno: -2,\n  syscall: \'scandir\',\n  code: \'ENOENT\',\n  path: \'/var/task/_posts\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是 API 路由本身 (/pages/api/search.ts):

\n
catch Error: ENOENT: …
Run Code Online (Sandbox Code Playgroud)

api fs node.js next.js vercel

6
推荐指数
0
解决办法
2555
查看次数

标签 统计

api ×1

fs ×1

next.js ×1

node.js ×1

vercel ×1