Quiero obtener información de mi tabla de envío de carga para procesar otra información que necesito hacer en la interfaz. Pero no sé cómo tomar el correo electrónico del usuario que inició sesión usando el método Axios.get() para usarlo para consultar mi base de datos MySQL.
en mi interfaz, definí un estado de uso de correo electrónico registrado y lo configuro para el usuario que ha iniciado sesión actualmente. ¿Cómo puedo pasar eso a mi backend usando el método GET?
aquí está mi código:
servidor:
app.get('/api/freightID', (req, res) => { const email = req.body. //how would i get the email from the front end to use it in my query? db.query("SELECT * FROM freight_shipment WHERE user_email = ?", email, (err, result) => { if(err){ console.log(err) } if(result.length > 0 ){ res.send(result); } }); });Interfaz:
const [loggedEmail,setLoggedEmail] = useState(""); Axios.defaults.withCredentials = true; useEffect(() => { Axios.get('http://localhost:3001/login').then((response) => { if(response.data.loggedIn == true){ setLoggedEmail(response.data.user[0].email) setLoginStatus(response.data.loggedIn); console.log(response.data.loggedIn) } }) },[]); useEffect(() => { Axios.get("http://localhost:3001/api/freightID").then((response) => { console.log(response); }) });Hay un objeto de config en Axios.get donde puede poner sus parámetros allí para enviarlos a BE
Lo usarías así:
Axios.get("http://localhost:3001/api/freightID", { params: { email: loggedEmail }, //<-- Put params here }).then((response) => { console.log(response); });Luego, en tu BE, lo obtendrías así:
app.get('/api/freightID', (req, res) => { const email = req.query.email //<-- It's here in the req.query db.query("SELECT * FROM freight_shipment WHERE user_email = ?", email, (err, result) => { if(err){ console.log(err) } if(result.length > 0 ){ res.send(result); } }); });Puede pasar el campo LogedEmailin Get como un parámetro de consulta o un parámetro de ruta.
Por favor, eche un vistazo a este artículo. https://masteringjs.io/tutorials/axios/get-query-params .
En tu caso puedes hacer como:
const params = { loggedInUserEmail: loggedEmailin }; Axios.get(`http://localhost:3001/api/freightID/{params.loggedInUserEmail}`)y en el lado del servidor puede obtener valor
app.get('/api/freightID/:email', (req, res) => {}) etc ... /// var end = req.params['email']