Estoy tratando de usar un correo electrónico de usuario userEmail (que se asigna al correo electrónico del usuario que actualmente está conectado a mi aplicación) como una consulta para mi API, ya que solo quiero buscar y devolver documentos de mi mongodb que se relacionen con ese correo electrónico específico. Estoy luchando por descubrir cómo pasar esta variable de mi aplicación reactjs a mi API y utilizarla, ni siquiera sé si es posible, por lo que cualquier ayuda sería genial.
Estoy usando axios para hacer mi solicitud GET.
api.js contiene mis funciones auxiliares de API
export async function surveyApiGet () { let response = await axios.get('http://localhost:6000/'); // dateApi.js return response.data; }dateApi.js es la llamada api surveyApiGet() y, en este momento, mi consulta es solo una expresión regular que coincide con cualquier correo electrónico, en lugar de filtrar solo al usuario actual.
let MongoClient = require('mongodb').MongoClient; var url = "mongodb://127.0.0.1:27017/"; const express = require('express'); const app = express(); app.use(express.json()); app.get('/', function (req, res) { MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("manderleydb"); var query = { userId : /^(.)/ }; dbo.collection("manderleySurveyCompleted").find(query).sort({ date: 1}).limit(1) .toArray(function(err, result) { if (err) throw err; console.log(result); db.close(); res.status(200).json(JSON.stringify(result)); }); }); }); app.listen(6000, () => { console.log('listening on port 6000'); });Landing.js es donde realizo la llamada a mi función auxiliar de API
surveyApiGet() .then(response => { // code }) .catch(err => { err.message; });Para esto, puede hacer una solicitud POST a su API de Nodejs y puede incluir el correo electrónico del usuario con esa solicitud. Para ello lo que tienes que hacer es algo como lo siguiente.
const usersEmail = "example@email.com"Luego, a través de Axios, puede publicar este código en la API de Nodejs de la siguiente manera.
const data = await axios.post("http://localhost:6000/", { usersEmail : usersEmail });Después de enviar esto a Nodejs, puede retener el valor del correo electrónico del usuario a través del cuerpo de la solicitud de la siguiente manera. Cambie su punto final para publicar en lugar de obtener.
app.post("/", function (req, res) { const userEmail = req.body.userEmail; //Put your MongoDB query and the status code here. })Deje un comentario si tiene algún punto poco claro.