我需要在 NextJS 中的 API 路由上使用 fileStystem 方法作为 readdirSync。它在本地工作,但部署在 Vercel 上时,请求会以 500 状态代码进行响应。
\n这是 Vercel 的功能日志:
\ncatch 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}\nRun Code Online (Sandbox Code Playgroud)\n这是 API 路由本身 (/pages/api/search.ts):
\ncatch Error: ENOENT: …Run Code Online (Sandbox Code Playgroud)