Почему Next.js не распознает новый файл, который я создал?

Как организовать код API (Next.js) для сохранения состояния файла между различными запросами (POST и GET), чтобы убедиться, что при следующем запросе GET система видит файл, созданный предыдущим запросом POST?
  • 26 июля 2024 г. 9:33
Ответы на вопрос 2
1. Next.js не распознает новый файл, потому что он не автоматически обновляет файловую систему при создании новых файлов. Для того чтобы Next.js распознал новый файл, вам потребуется перезапустить сервер.

2. Для организации кода API в Next.js, чтобы сохранять состояние файла между различными запросами POST и GET, вы можете использовать файловую систему Node.js для сохранения данных. Например, вы можете сохранить файл в специальную папку на сервере при каждом запросе POST, а затем читать этот файл при запросе GET.

Примерно код может выглядеть так:

```jsx
import fs from 'fs';
import path from 'path';

const filePath = path.resolve('./data/file.json');

export default async (req, res) => {
  if (req.method === 'POST') {
    const data = req.body;
    fs.writeFileSync(filePath, JSON.stringify(data));
    res.status(200).json({ message: 'Data saved' });
  } else if (req.method === 'GET') {
    try {
      const data = fs.readFileSync(filePath, 'utf8');
      res.status(200).json(JSON.parse(data));
    } catch (error) {
      res.status(500).json({ message: 'Error reading file' });
    }
  }
}
```

Не забудьте создать папку `data` в корне проекта Next.js, куда будут сохраняться файлы.

Код выше сохраняет данные, пришедшие в запросе POST, в файл `file.json`, а затем читает этот файл и отправляет данные в ответе на запрос GET.
GET-запросы в Нексте кэшируются, попробуйте это кэширование отключить .
Похожие вопросы