доступ к значениям коллекции полей в nodejs и express js - PullRequest
0 голосов
/ 23 марта 2020

Я хочу отправить только название продукта на «pos-страницу», а не все поля, поля продуктов:

[ { _id: 5e77681899b2f43faca5b432,
              Code: 545454332452,
              Qtt: 120,
              Name: 'adidas',
              Price: 9800,
              Categorie: 'basckets',
              avatar: 'avatar-1584883890430.png',
              __v: 0 } ]       

Маршруты:

router.post('/searchProduct', function(req, res) {

    var query = { Code: req.body.searchInput };
    EventProduct.find(query ,function(err, products) {
        if (err) throw err;

        console.log( products )   //display all fields 
        console.log( products.Name )   // display   "undefined" 

        req.app.locals.nameOfYourArr = productsName;     
        res.redirect('/pos');


      } )
});

//pos route

router.get('/pos', function(req, res) {
    var arr = req.app.locals.nameOfYourArr;
    console.log(arr);     // i need to display   "Name: 'adidas'"  

});

для передачи параметров от маршрута к маршруту я использую следующие ссылки: Передаем массив объектов от маршрута к маршруту

1 Ответ

0 голосов
/ 23 марта 2020

Поскольку ваш запрос может возвращать более одного результата, он возвращает Array, поэтому, если вы считаете, что первый результат является правильным, выберите его, прежде чем пытаться получить доступ к полю: products[0].Name.

Также, если вам нужно получить его после перенаправления, вы должны передать его в URL:

res.redirect(`/pos?name=${products[0].Name}`);

Затем в конечной точке /pos:

router.get('/pos', function(req, res) {
    console.log(req.query.name);     // i need to display   "Name: 'adidas'"  
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...