Мне нужно взять данные формы из реакции и отправить их на мой сервер для использования в качестве переменной запроса. Что я делаю неправильно? - PullRequest
0 голосов
/ 01 февраля 2020

Я перехожу в полный стек, и это очень весело. Я застрял в том, как перевести мою переменную со стороны клиента на сервер и использовать ее для запроса API. Любые учебники или предложения будут с благодарностью. Эта концепция дает мне бизнес, просто у меня его еще нет.



////server.js
app.get("/getmovies", (req, res) => {
const {name} = req.body;

  request(`http://www.omdbapi.com/?t=${name}&apikey=${API_KEY}`,
      function (error, response, body) {
          if (!error && response.statusCode == 200) {
              var parsedBody = JSON.parse(body);
              res.send(parsedBody)

          } else {
              console.log("error in the server")
          }
      }

  )
})

//client side
state = {
  movies: null,
  movie: {
    name: ''
  }
}


postJson = (e) => {
  const { movie } = this.state;
  e.preventDefault();
  axios.post(`/getmovies`, {})

    .then(res => {
      console.log(res);
      console.log(res.data);
    }
    )
    .catch(function (error) {
      console.log(error);
    })
}


getMovies = (e) => {
  e.preventDefault();

  axios.get(`/getmovies`)

    .then(response => this.setState({ movies: response.data }))
    // .then(response => this.setState({ movies: response.data }))
    .catch(err => console.error(err))

}


1 Ответ

0 голосов
/ 01 февраля 2020

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

POST

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

axios.post('/postmovies', {
  name: 'Fred',
}).then({
// ...

Или как это:

axios({
  method: 'POST',
  url: '/postmovies',
  data: { name: 'Fred' },
}).then({
// ...

GET

Вы можете просто передать параметр запроса вместе с URL-адресом, например:

const { name } = this.state;
axios.get(`/getmovies?name=${name}`).then({
// ...

Примеры проверки здесь .

Сторона сервера

Параметры запроса

Для получения параметров запроса вы можете сделать :

app.get("/getmovies", (req, res) => {
  const { name } = req.params;
  // ...

Тело запроса

Для получения тела запроса:

app.post("/postmovies", (req, res) => {
  const { name } = req.body;
  // ...
...