Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
React how can you pass a variable to a get request

I'm trying to query from a table where the teacherId is equal to the teacherId of the person that logs in but I can't pass that teacherId from the front-end to the back-end.

This is the back end

app.get("/api/get", async(req,res) => {
    const teacherId = req.body.teacherId
    connection.query(
        "SELECT class FROM homework WHERE teacherID = ?",
        [teacherId],
        (err, result) => {
            if (result){
                res.send({ message: result })
            } else{
                console.log(err)
            }
        }
    )
})

This is the front end

 useEffect(() => {
        Axios.get("http://localhost:1337/api/get", {
            teacherId: teacherId
        }).then((response) => {
            if(response){
                setDisplayHomework(response.data.message)
            } else{
                console.log("error")
            }
        })
    })
const teacherId = localStorage.getItem("teacherId")

I think the problem lies where it says teacherId: teacherId but I don't know why.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

You need to use

Axios.get("http://localhost:1337/api/get", {
     params: { teacherId }
 });

and use req.query.teacherId to read it


If you see the Axios.get signature it is

axios.get(url[, config])

in contrast to

axios.post(url[, data[, config]])

which passes the data as the second argument.

That is because the body in GET requests is not used by the servers. Read HTTP GET with request body for more on this.

about 4 years ago · Juan Pablo Isaza Report

0

Usually you do not send a body with a get request. Put the teacher id into the url. Then this is called path variable.

app.use('/teacher/:teacherId', function(req, res, next) {
  console.log(req.params.teacherId);
  next();
})
about 4 years ago · Juan Pablo Isaza Report

0

Get requests don't have request bodies unlike post requests, as such the Axios.get function shouldn't have a second parameter for the body. Instead pass your parameters as a url, like this:

useEffect(() => {
        Axios.get("http://localhost:1337/api/get?teacherId="+teacherId).then((response) => {
            if(response){
                setDisplayHomework(response.data.message)
            } else{
                console.log("error")
            }
        })
    })

Then in your backend code use req.params to access the get request url parameters:

app.get("/api/get", async(req,res) => {
    const teacherId = req.params.teacherId
    connection.query(
        "SELECT class FROM homework WHERE teacherID = ?",
        [teacherId],
        (err, result) => {
            if (result){
                res.send({ message: result })
            } else{
                console.log(err)
            }
        }
    )
})
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!