【发布时间】:2022-08-22 16:26:45
【问题描述】:
我是后端新手,我对商店如何加载(例如)20 种产品感到困惑,然后当您单击下一页时,您会获得另外 20 种新产品。我正在将 nodejs 与 mongoose 和 ejs 一起使用,所以如果有人可以提交一个带有解释的示例,我会非常感谢它!但只有解释也行!提前致谢! (我真的不知道如何用谷歌搜索这个问题的答案,所以这就是我在这里的原因!)
标签: node.js mongoose backend ejs
我是后端新手,我对商店如何加载(例如)20 种产品感到困惑,然后当您单击下一页时,您会获得另外 20 种新产品。我正在将 nodejs 与 mongoose 和 ejs 一起使用,所以如果有人可以提交一个带有解释的示例,我会非常感谢它!但只有解释也行!提前致谢! (我真的不知道如何用谷歌搜索这个问题的答案,所以这就是我在这里的原因!)
标签: node.js mongoose backend ejs
基本上,您需要先将产品详细信息存储在集合中。您可以通过在 admin 路由上添加一个表单来完成此操作。要存储图像,如果您使用 express,您可以使用名为 express-fileupload 的中间件,然后在您的 app.js 文件中 var fileupload = require("express-fileupload"); 然后您可以通过 app.use(fileupload()); 在您的 app.js 文件中注册中间件
为了在此处保存图像,我将图像存储在服务器本身中,但不建议这样做。您想用连接重命名图像。例如 mongo 文档插入 id 。这将真正帮助您轻松循环产品 我将向您展示如何将数据从表单添加到数据库并使用 mongo id 存储图像的示例。
router.post('/add-products', (req, res) => {
let datainsert = req.body,
db.get().collection('products').insertOne(datainsert).then((data) => {
let id = data.insertedId
let image = req.files.image
image.mv('./public/images/product-images/' + id + '.jpg', (err) => {
if (!err) {
console.log("document added and image saved)
res.redirect('/')
} else {
console.log("err" + err);
}
})
})
现在您的产品将被添加到 db 并且图像将存储在 server 中。 要查看产品,您基本上可以遍历文档
希望对您有所帮助,如果您遇到任何错误或疑问,请随时回复。谢谢 !
【讨论】:
我刚刚想通了。我可以隐藏所有产品,然后将它们存储在一个数组中,并使用此代码在每次查询参数“page”上升时仅在列表中显示 5 个新产品。这是代码:(它有点笨拙,但它可以完成工作,它可能会帮助那些正在寻找与我相同答案的人!快乐编码!
function getQueryVariable(variable) {
let query = window.location.search.substring(1);
let pageNum = query.split("=")[1];
return pageNum * 5;
}
let pageNum = getQueryVariable("page");
let namn = [];
let namnAttSamla = document.getElementsByClassName("namn");
for (let i = 0; i < namnAttSamla.length; i++) {
namn.push(namnAttSamla[i].innerText);
}
for (let i = pageNum++; i < pageNum + 4; i++) {
console.log(namnAttSamla[i].innerText, "index:", i);
}
【讨论】: