【发布时间】:2022-01-25 05:20:35
【问题描述】:
我对动态路由还是很陌生,虽然这很有意义,但我在正确实现它时遇到了问题。下面是我想从数据库中获取用户购买并将其导出为 csv 的函数。我让它在本地 mongoDB 上工作,但是当我搬到 Atlas 进行托管时,它只抓取数据库中列出的第一个人,而不是登录的人。我能否获得一些关于我的 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);
}
}
});
}
});
【问题讨论】:
标签: node.js mongodb express mongoose