Используйте функцию Asyn c для печати значения в e js view Express js - PullRequest
0 голосов
/ 15 февраля 2020

Я передал модель из контроллера, чтобы использовать ее в виде, но кажется, что печать значений с использованием функций Asyn c невозможна в представлении. Что может быть подходящим способом использовать модель для печати внутри asyn c функции в представлении?

Мне нужно получить userImage из таблицы пользователя. (PS: использование console.log (userImage) там же работает, это сводит меня с ума. Пожалуйста, помогите мне)

        <img src="<% userModel.findById(postData.uid,function(err,user) {%>   <%=user.userImage%>  <% }) %>" class="mx-2"><a href="#" class="mx-2">Anmol D. Pradhan</a>

1 Ответ

0 голосов
/ 18 февраля 2020

Во-первых, это абсолютно не лучшая практика.

Вы должны сделать что-то подобное:

    // ...
    const userModel = require('/your-path-to/userModel');
    app.get('/your/url', async (req, res) => {
        const user = await userModel.findById(uid);
        res.render('/youpage.html', {
            user: user
        });
    });
<!-- Here's your EJS template -->

<img src="<%= user.userImage %>" class="mx-2"><a href="#" class="mx-2">Anmol D. Pradhan</a>

Это всего лишь пример. Я не знаю, как на самом деле структурированы ваши маршруты, но я надеюсь, что это поможет.

...