Есть ли способ собрать данные из URL и найти эти данные в базе данных и отобразить их в файле ejs? - PullRequest
0 голосов
/ 16 апреля 2019

Я новичок в nodejs и экспресс.Итак, есть ли способ получить данные из URL и найти их в базе данных и отобразить всю коллекцию в файле ejs.

Like (/ catagory /: animal)

, где будет выбрана переменная (animal), и она будет найдена в базе данных и передаст всю коллекцию подобранных животных без использования ifеще заявление.

, пожалуйста, предложите мне.

app.get("/category/:animal", function(req,res){
    var animalCopy = req.params.animal;
    console.log(animalCopy);
    if(animalCopy == "dog")//Dog category
    {
     Product.findOne({header : "Dog"},function(err,products)
        {
          if(err)
            {
            console.log(err);
            }else
            {
         res.render("product",{products : products});   
            }
        });
    }
    else if(animalCopy == "cat")//Cat category
    {
     Product.findOne({header : "Cat"},function(err,products)
        {
          if(err)
            {
            console.log(err);
            }else
            {
         res.render("product",{products : products});   
            }
        });
    });

Есть много категорий животных.Так что для каждой категории мне придется писать непрерывные операторы if else?пожалуйста, предложите!

1 Ответ

1 голос
/ 16 апреля 2019

Вы можете использовать свой параметр animal в запросе, но, если ваши критерии запроса всегда являются заглавной версией параметра url, тогда вам просто нужно прописать первую букву:

app.get("/category/:animal", function(req, res) {
  const animal = req.params.animal;

  const animalCapitalised = animal.charAt(0).toUpperCase() + animal.slice(1);

  Product.findOne({ header: animalCapitalised }, function(err, products) {
    if(err) {
      console.log(err);
    } else {
      res.render("product", { products : products });   
    }
  });
});

Надеюсь, это поможет.

...