我对动态路由仍然相当陌生,尽管这是有意义的,但我在正确地实现它时遇到了问题。下面是一个函数,我想从数据库中获取用户的购买信息,并将其导出为csv。我让它在本地mongoDB上工作,但当我搬到阿特拉斯托管时,它只抓取数据库中列出的第一个人,而不是登录的人。我能得到一些关于为什么我的req.params不能工作的指导吗?提前谢谢你。
(此路由属于服务器中的app.use(/profile,profile) )
profile.js
// DOWNLOADING CSV OF PURCHASES
router.get("/purchased-items/:id", csvAbuseLimiter, (req, res) => {
if (req.isAuthenticated()) {
User.findOne({ id: req.query.id }, (err, foundUser) => {
if (foundUser) {
console.log(foundUser);
const userPurchases = foundUser.purchases;
const fields = ["name", "order", "duration", "asset"];
const json2cvsParser = new Parser({ fields });
try {
const csv = json2cvsParser.parse(userPurchases);
res.attachment(`${req.user.username}-purchases.csv`);
res.status(200).send(csv);
req.flash("success", "successful download");
} catch (error) {
console.log("error:", error.message);
res.status(500).send(error.message);
}
}
});
}
});登录人

路线到底是怎么回事。

发布于 2021-12-24 18:16:22
在提供的代码中,您使用的是req.query.id而不是req.params.id。
https://stackoverflow.com/questions/70475221
复制相似问题