Как получить информацию, если товар уже добавлен в список желаний / корзину в каталоге товаров, созданных с помощью express.js и mongodb - PullRequest
0 голосов
/ 14 февраля 2019

Как мне назначить информацию в моем каталоге товаров, если товар уже есть в моем списке желаний / корзине?Я хотел бы отключить «добавить в список желаний» для продукта, который уже находится в списке желаний / корзине.

Я использую express.js с mongoose.В настоящее время я храню список желаний в объекте пользователя со ссылкой на продукт.

const userSchema = new Schema({
    email: { type: String, required: true },
    password: { type: String, required: true },
    wishlist: {
        items: [
            {
                ProductId: { type: Schema.Types.ObjectId, ref: 'Product', required: true }
            }
        ]
    }
});

Я запрашиваю каталог продукции с помощью Product.find({}) и отображаю результат с помощью pug.

1 Ответ

0 голосов
/ 14 февраля 2019

( Обновлено )
Попробуйте что-то вроде этого:

controllers / Store.js

const Users = require("../models/Users")
const Products = require("../models/Products")

router.post("/addToWishlist", async(req, res) =>{
  try{

    //query for specified user
    const user = await Users.findOne({
      email: req.body.email,
      password: req.body.password
    });

    //query for all products except for what's on the list
    let stuff = await Products.find(
          {_id:{ $not: {$in:[...user.wishlist.items]}}
      });
      res.status(200).json({ // or res.send/res.render
        data: stuff
      })
    });
  }
  catch(err){

    res.status(500).json({ // or res.send/res.render
      message: err.message
    })
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...