如何查询 api 电子邮件,我可以使用 expressJs 和 nodeJs 为来自 mongoDB 的不同用户找到数据电子邮件
How to make query api for email that I can find data email wise for different users from mongoDB with expressJs , nodeJs
我是 MongoDB、NodeJS 后端开发和 React-JS 前端开发的新手。
我想创建一个 API 端点,从 MongoDB 中查找数据,并在用户登录系统时按用户电子邮件地址进行过滤。我的登录系统完全没问题。但问题是,当我尝试从客户端检索数据时,时间数据未在 UI 上显示(获取)。它创建并清空数组。我想知道我的代码有什么问题。
这是我的 API 后端代码:
app.get('/myproducts', async (req, res) => {
const email = req.query.email;
const query = { email: email };
const cursor = inventoryCollection.find(query);
const myProducts = await cursor.toArray();
console.log(myProducts);
res.send(myProducts);
});
客户端代码:
useEffect(() => {
const getMyProducts = async () => {
const email = user?.email;
console.log(email);
const url = `http://localhost:5000/myproducts?email=${email}`;
try {
await fetch(url)
.then(res => res.json())
.then(data => setProducts(data))
} catch (error) {
console.log(error?.message)
}
}
getMyProducts();
}, [user])
toArray
函数存在于原生 MongoDB NodeJS 驱动程序的 Cursor class 上。 MongooseJS中的find方法returns一个Query对象
在这种情况下,您可以使用 res.send(cursor)
直接登录或发送您的 cursor
。
我解决了,我的错误。当我在我的库存中添加产品时,我没有将我的电子邮件保存在数据库中 post。将我的电子邮件保存在数据库中后,现在我可以通过电子邮件过滤产品并在 UI.
上显示
const handleProductPost = (event) => {
event.preventDefault();
const email = user.email; //before, I did not added this email when posting
const productName = event.target.productName.value;
const image = event.target.image.value;
const description = event.target.description.value;
const price = event.target.price.value;
const quantity = event.target.quantity.value;
const supplierName = event.target.supplierName.value;
const product = { email, productName, image, description, price, quantity, supplierName };
fetch('https://back-pack-warehouse.herokuapp.com/product', {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify(product)
})
.then(res => res.json())
.then(data => {
if (data.insertedId) {
toast('Product Added Successfully');
event.target.reset();
}
});
}
我是 MongoDB、NodeJS 后端开发和 React-JS 前端开发的新手。 我想创建一个 API 端点,从 MongoDB 中查找数据,并在用户登录系统时按用户电子邮件地址进行过滤。我的登录系统完全没问题。但问题是,当我尝试从客户端检索数据时,时间数据未在 UI 上显示(获取)。它创建并清空数组。我想知道我的代码有什么问题。
这是我的 API 后端代码:
app.get('/myproducts', async (req, res) => {
const email = req.query.email;
const query = { email: email };
const cursor = inventoryCollection.find(query);
const myProducts = await cursor.toArray();
console.log(myProducts);
res.send(myProducts);
});
客户端代码:
useEffect(() => {
const getMyProducts = async () => {
const email = user?.email;
console.log(email);
const url = `http://localhost:5000/myproducts?email=${email}`;
try {
await fetch(url)
.then(res => res.json())
.then(data => setProducts(data))
} catch (error) {
console.log(error?.message)
}
}
getMyProducts();
}, [user])
toArray
函数存在于原生 MongoDB NodeJS 驱动程序的 Cursor class 上。 MongooseJS中的find方法returns一个Query对象
在这种情况下,您可以使用 res.send(cursor)
直接登录或发送您的 cursor
。
我解决了,我的错误。当我在我的库存中添加产品时,我没有将我的电子邮件保存在数据库中 post。将我的电子邮件保存在数据库中后,现在我可以通过电子邮件过滤产品并在 UI.
上显示 const handleProductPost = (event) => {
event.preventDefault();
const email = user.email; //before, I did not added this email when posting
const productName = event.target.productName.value;
const image = event.target.image.value;
const description = event.target.description.value;
const price = event.target.price.value;
const quantity = event.target.quantity.value;
const supplierName = event.target.supplierName.value;
const product = { email, productName, image, description, price, quantity, supplierName };
fetch('https://back-pack-warehouse.herokuapp.com/product', {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify(product)
})
.then(res => res.json())
.then(data => {
if (data.insertedId) {
toast('Product Added Successfully');
event.target.reset();
}
});
}