Как отправить строковую переменную из реакции на аксиомы

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

const recd = props.transGenre // string.. ex) "horror"

useEffect(() => 
  {  
    (async()=>{
      const reqGenre = await axios.get(`./genre`,{recd})
      console.info(reqGenre.data)
      setGenreList2(reqGenre.data)
    })(); 
  },[]);

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

app.get('/genre',(req,res)=>{
  console.info('/genre')
  const getGenre = req.params.recd
  console.info(getGenre)
  db.query(`select * from moviedb where genre concat('%','${getGenre}','%')  Order by opendate desc`,(err,data)=>{
      if (!err){
          //console.info(data)
          res.send(data)
          console.info(data)
      }else{
          console.info(err)
      }
  })
})

Я хочу отправить переменную на сервер db.query с запросом axios в ответ.

Когда приведенный выше код выполняется, '{recd}', доставленный от клиента, не распознается, и в окне консоли отображается undefined.

recd — это строковая переменная, которая используется для отправки строки жанра фильма в db.query через событие click, помещения ее в условный оператор и вызова фильма с информацией о жанре на стороне сервера.

Как я могу правильно отправить строковую переменную ({recd})?

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
0
108
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Первый плохой совет, который вы должны правильно изучить о создании и использовании API. Как клиентский, так и серверный код имеют некоторые проблемы, но их можно исправить.

Есть два способа добиться того, чего вы хотите здесь. Либо вы отправляете recd с клиента на сервер, используя параметры запроса или параметры пути.

Я приведу два примера ниже.

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

В запросе axios на стороне клиента измените эту строку с

const reqGenre = await axios.get(`./genre`,{recd})

к

const reqGenre = await axios.get(`/genre?recd=${recd}`)

И на стороне сервера измените эту строку с

const getGenre = req.params.recd

к

const getGenre = req.query.recd

Параметры пути

В запросе axios на стороне клиента измените эту строку с

const reqGenre = await axios.get(`./genre`,{recd})

к

const reqGenre = await axios.get(`/genre/${recd}`)

И на стороне сервера измените эту строку с

app.get('/genre',(req,res)=>{

к

app.get('/genre/:recd',(req,res)=>{
...

Спасибо за добрый ответ, я многому научился. Большое спасибо

MellDaM 10.10.2022 14:45

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