Как отправить данные на стороне клиента next.js на экспресс-сервер? - PullRequest
0 голосов
/ 31 декабря 2018

Например, в моем компоненте входа Next.js у меня есть вызов API, который дает мне некоторые данные

 submitLoginForm = e => {
   e.preventDefault();
   const loginData = {
     email: this.state.email,
     password: this.state.pass
   };

   axios.post("https://reqres.in/api/login", loginData)
  .then(res => console.log(res));

 };

У меня есть экспресс-сервер, который обрабатывает рендеринг на стороне сервера.Теперь, как мне отправить данные ответа от клиента в файл server.js ??

1 Ответ

0 голосов
/ 31 декабря 2018

Как вы сказали, NextJS SSR - это просто сервер ExpressJS, который обслуживает приложение, вы можете добавить маршрут в экспресс-файл и сделать так, чтобы клиентская сторона отправила запрос на этот маршрут.

server.js

app.get('/my/route', (req, res) => {
  // do something

  res.send('my route');
});

на стороне клиента

axios.get('http://localhost:3000/my/route').then(console.log) // my route

РЕДАКТИРОВАТЬ:

Просто чтобы люди не говорили, что OP запрашивает метод POST, а не GET

Использование с POST

app.post('/my/route', (req, res) => {
  const { body } = req;

  // do something with body

  res.send('response after posting to server');
});

В вашем клиенте

axios.post('http://localhost:3000/my/route', { data: [] })
  .then(console.log) // response after posting to server
...