Сторона клиента
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})?






Первый плохой совет, который вы должны правильно изучить о создании и использовании 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)=>{
...
Спасибо за добрый ответ, я многому научился. Большое спасибо