NEXTJS — получение данных с сервера

Я хочу получить данные с сервера nextjs во внешнем интерфейсе, однако код после fetch() не работает в функции onSubmit(). вот /тестовая страница

страницы/тест

  const onSubmit = (data) => {
    console.info("________");
    users.map(async (user, index) => {
      if (data.email === user.email) {
        if (data.password === user.password) {
          console.info("hi");

          const data = await fetch("http://localhost:3000/api/test");

          //  after the fetch, this code does not run
          console.info("back-end is: ", data);  

        }
      }
    });
  };  

и вот мой код в /api/test

export default async function student_method(req, res) {
  return console.info("get in server");
}

так пожалуйста, в чем проблема??

я пытаюсь получить данные внутри базы данных поэтому нам нужно использовать метод fetch(), но fetch() работает успешно, но код после fetch() не работает

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
67
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я думаю, что проблема заключается в использовании оператора return на стороне сервера. NextJS предоставляет вспомогательные методы в объекте res, который вы получаете в своей серверной функции.

Попробуйте что-то вроде этого:

res.status(200).send("get in server");

Подробнее см. здесь: API-маршруты: Response Helpers

const data = await fetch("http://localhost:3000/api/test");

Проблема в этой линии. Там вы ждете разрешения Promise, но если вы видите, что вы api/test, вы возвращаете только журнал.

Пожалуйста, попробуйте вернуть обещание.

Я считаю, что ключевое слово async всегда будет заключать в себе обещание для вас.

great_pan 20.11.2022 20:25

Код сейчас не работает, потому что вы ждете ответа сервера, но ничего не отправляете с сервера.

Вы должны отправить ответ клиенту следующим образом:

export default async function student_method(req, res) {
  /* status code 200 or any other status codes */
  res.status(200).send("get in server");
}

да, конечно, я забыл отправить ( res ) в бэкэнд. большое спасибо за ваш ответ

Yahia 21.11.2022 06:56

Другие вопросы по теме