如何通过使用ejs将2个集合的输出加入Node.js和MongoDB中来呈现输出?

时间:2019-02-20 00:11:25

标签: node.js mongodb mongoose ejs

我必须加入2个集合并使用ejs渲染它们 以下是2个集合的一部分: 产品:

{
    "_id": {
         "$oid": "5c60b3ebc5281008df59b8eb"
    },

    "uid": {
         "$oid": "5c062d0c899ab70d5178791e"
    },
    "title": "Accounting & Finance 5",
    "image": "a-600x375.png"
}

uid是产品的所有者

订单:

{
"_id": {
    "$oid": "5c6b1d2f34ede10be5e35881"
},
"uid": {
    "$oid": "5c5a6d8112d1ca05fa0f40d9"
},
"pid": {
    "$oid": "5c60b3ebc5281008df59b8eb"
},
"sid": {
    "$oid": "5c062d0c899ab70d5178791e"
},
"transactionId": "PAYID-LRVR2II4YD02808DH382030W",
"title": "Business and Enterprice 5",
"license": "Elite",
"amount": {
    "$numberInt": "105"
},
"date": {
    "$date": {
        "$numberLong": "1550523695877"
    }
}
}
uid是买方ID。 sid是卖方id,即产品的uid。 pid是产品ID。

所以在Node.js中,我的工作方式是:

router.get('/order-history', isUser, function (req, res) {

Order.find({uid: req.user._id}, function (err, orders) {
    Product.find({_id: orders.pid}, function (err, products) {
        res.render('orders', {
            title: 'Orders',
            products:products,
            image:products.image,
            orders: orders,
            errors: err,
            user: res.locals.user
        });
     });

  });
});

此处uid是买方ID。      pid产品ID

所以我需要的是产品集合中的图像名称。我尝试了2 foreach,我能够从两个集合中获取数据,但是我需要一个foreach来显示输出,例如: 图片产品名称日期金额等

这是ejs的快照:

<ul class="orderList">
            <% orders.forEach(function(order) { %>
            <li>
                <div class="orderPanel">
                    <div class="orderImage">
                        <a target="_blank" href="img_lights.jpg">
                            <img id="noimage" src="/product_images/<%= order.sid %>/<%= order.image %>" alt=""
                                 width="180" height="140">
                        </a>
                    </div>
                    <div class="orderDetails">
                        <div class="orderTitle"><%= order.title %></div>
                        <div class="orderLicense"><%= order.license %>License <span class="orderDate"
                                                                                    style="float: right; font-size: 10pt">15 Feb 2019</span>
                        </div>


                        <table>
                            <tr style="">
                                <td style="width: 90%">
                                    <div class="orderAmount">Item Price: $<%= order.amount %></div>
                                    <div>Product By: Hasan</div>
                                </td>
                                <td rowspan="2" style="float: right;">You made
                                    <div class="orderProfit"> $45</div>
                                </td>
                            </tr>
                            <tr>
                            </tr>
                        </table>
                    </div>
                </div>
            </li>
            <% }); %>
        </ul>

请问我一个大问题。我希望有人能帮助我。

0 个答案:

没有答案