仅在URL中没有id的情况下显示产品块

时间:2019-01-09 11:15:50

标签: node.js express

我有一个分类列表,当用户单击分类列表时,会将它们带到详细信息页面。我只想要网址中的子弹,即:

https://someshop.com/red-bag

我能够执行此操作,但问题是产品名称不是唯一的,因为某个时刻可能有多个用户想要添加“红色袋子”。所以,我所做的就是使用ID和子弹,例如:

https://someshop.com/4d35c2fcef9b6c17167ff53y/red-bag

但这看起来并不特别好。有没有办法仍然对照ID进行检查,但实际上并未在URL中显示它?

html href:

<a href="/products/<%= product._id %>/<%= product.titleSlug %>" class="listing-item-container">

路由器:

router.get('/products/:productId/:titleSlug', shopController.getProductDetail);

控制器:

exports.getProductDetail = (req, res, next) => {
    const titleSlug = req.params.titleSlug;
    const productId = req.params.productId;
    Product.findOne({titleSlug: titleSlug, _id: productId})
    .then(product => {
        res.render('shop/product-detail', {
            pageTitle: 'Product detail',
            path: '/products',
            product: product
        });
    })
    .catch(err => {
        console.log(err);
    });
};

1 个答案:

答案 0 :(得分:1)

我想说,最好的选择是根据从用户收到的<div class="col-6 info-left"> <h1>Warentykowe Prezenty</h1> <span class="small-text">Od serce kafetrii</span> <p> Posłuchaj Serca Kafeterii i w Walentynki podaruj bliskiej osobie więcej miłosci ! Przygotowalismy zestawienie prezentowych bestsellerów dla niej, dla niego dla Was i... dla Ciebie - miłość nie jedno ma imię, zastanawiałes się już kogo obdarujesz w tym roku </p> </div>字符串并使用您选择的Slug库来控制服务器端的Slug。然后,您可以检查现有条目,并确保您的块是唯一的-在最坏的情况下,您只需向其中添加一些内容即可:您可以使用title/red-bag等。仍然比UUID好。