next.js 下一个js API在部署后不返回响应

a8jjtwal  于 2023-02-12  发布在  其他
关注(0)|答案(1)|浏览(158)

在本地主机上工作时,API和posts.jaon文件也工作正常。能够执行CRUD。但在我将其部署到vercel后,api不加载。日志中的错误如下所示:[GET] /api/insta 11:39:32:83 [Error: ENOENT: no such file or directory, open './posts.json'] { errno: -2, code: 'ENOENT', syscall: 'open', path: './posts.json' }
当我点击API时,期望浏览器中有一个json响应。
json文件在下一个应用程序的pages/API文件夹中。我尝试将json文件移到文件夹结构顶层的pages之外,并更改文件系统内部的路径(“file.json”,....)。但没有任何效果

bqf10yzr

bqf10yzr1#

Vercel的这篇文章可能会帮助您:
How to Load Data from a File in Next.js
以下是摘录:

import path from 'path';
import { promises as fs } from 'fs';

export default async function handler(req, res) {
  
  const jsonDirectory = path.join(process.cwd(), 'json');
  
  const fileContents = await fs.readFile(jsonDirectory + '/data.json', 'utf8');
  
  res.status(200).json(fileContents);
}

这样你就有了一个名为json的文件夹,所有的数据都保存在这个文件夹中,这在第4行声明,如果你想重命名它,当然是可以的。

相关问题