ReferenceError: продукт не определен - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь получить данные, но когда я их утешаю. Я получаю данные, но при рендеринге они не работают во внешнем интерфейсе, его продукт показа не определен.

app.get('/profile/profile/dashboard/update/:id',function (req,res,next) {
           //console.log("hello "+req.params.id);
    Product.findOne({_id: req.params.id}).then(product=>{

        console.log("hello check please "+ product);
    });

    res.render('update.ejs',{ product: product });
});

файл update.ejs

<% if (product._id) { %>
        <tbody>
        <td><input type="text" value="<%= product.name %>" required></td>
        <td><input type="text" value="" required></td>
        <td><input type="text" value="" required></td>
        <td><input type="text" value="" required></td>
        <td><input type="submit" class="btn btn-danger" value="submit"></td>
        </tbody>
        <% } %>

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Да, проблема с вашим кодом заключается в том, что рендеринг размещен вне метода find one. Поместите это в фигурные скобки, как.

app.get('/profile/profile/dashboard/update/:id',function (req,res,next) {
           //console.log("hello "+req.params.id);
    Product.findOne({_id: req.params.id}).then(product=>{

        console.log("hello india "+ product);
        res.render('update.ejs',{ product: product });
    });
});
0 голосов
/ 03 сентября 2018

Проблема в том, что вы пытаетесь отобразить данные до завершения findOne. findOne - это асинхронная функция, поэтому журнал работает для вас.

Перемещение res.render в области действия then:

Product.findOne({_id: req.params.id}).then(product=>{

        console.log("hello check please "+ product);
        res.render('update.ejs',{ product: product });
    });
...