отправить счет с помощью node.js - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь отправить счёт с помощью node.js nodemailer и руля с названием товара, ценой, но когда я это сделаю, он отправит мне счёт за каждый товар. как я могу сделать так, чтобы каждое наименование и цена каждого товара были в одном и том же счете?

модель моего заказа:

const CartItemSchema = new mongoose.Schema  ({
product: { type: ObjectId, ref: "Product" },
name: String,
price: Number,
count: Number,
download: String,
);
const CartItem = mongoose.model("CartItem", CartItemSchema);
const OrderSchema = new mongoose.Schema ({
products: [CartItemSchema],
transaction_id: {},
amount: { type: Number },
status: {
  type: String,
  default: "Delivered",
},
updated: Date,
user: { type: ObjectId, ref: "User" }
 );
const Order = mongoose.model("Order", OrderSchema);
module.exports = { Order, CartItem };

мой контроллер заказов

    const handlebarOptions = {
        viewEngine: {
          extName: '.hbs',
          partialsDir: 'views/bill',
          layoutsDir: 'views/bill',
          defaultLayout: 'bill.hbs',
        },
        viewPath: 'views/bill',
        extName: '.hbs',
    };
    transporter.use('compile', hbs(handlebarOptions));
    order.products.forEach(item => {
        let mailOptions = {
            from: '******',
            to: order.user.email,
            subject: 'Commande', 
            template: 'bill',
            context: {
                productname : `${item.name}`,
                productprice : `${item.price}`,
            },
        };
        transporter.sendMail(mailOptions,(err) => {
            if (err) { 
                return res.status(500).send({ 
                    msg: err.message 
                }); 
            }
            res.status(200).json('A verification email has been sent to ' + user.email + '.');
        });    
    });

  })
}

мой файл hbs

      <tbody>
        <tr>
          <td class="left strong">
            {{productname}}
         </td>
         <td class="right">{{productprice}}</td>
         <td class="right">
            {{productdownload}}
         </td>
       </tr>
     </tbody>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...