Mon goose и Node error: невозможно прочитать свойство 'forEach' из неопределенного - PullRequest
0 голосов
/ 09 января 2020

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

Вот фрагмент кода:

Это мой файл маршрутизации js (пользователи. js)

router.get ('/Benutzerverwaltung_Mitarbeiter', async (req, res) => {

    User.find(function (err, users) {

        // if there is an error retrieving, send the error.
        // nothing after res.send(err) will execute
        if (err)
            return res.send(err);
        res.json(users);
        res.render('Benutzerverwaltung_Mitarbeiter',{
            users: res.user
        });
    });
});

и этот мой .e js файл:

 <%- include('../routes/users.js'); %>
            <div>
                <table id="tabelle" class="cell-border"  class="table table-striped" cellspacing="0" class="table table-hover">
                    <thead>
                    <tr>
                        <th>UserID</th>
                        <th>Rolle</th>
                    </tr>
                    </thead>
                    <tbody>
                    <tr>
                    <% users.forEach (function (user) { %>
                    <td><%user.username%></td>
                    </tr>
                    <td><%user.admin%></td>
                    <%});%>
                    </tbody>
                </table>
                </div>

Я надеюсь, что вы можете мне помочь :) Cheeres, Mert

Ответы [ 2 ]

2 голосов
/ 09 января 2020

Оба res.json и res.render являются «терминальными» методами - вам действительно следует использовать их только один раз, когда вы «закончили», никогда не используйте оба метода одинаково.

Я думаю, что в этом случае вы пытаемся вернуть html, а не json, поэтому вы хотите res.render. Попробуйте эту модификацию:

User.find(function (err, users) {

    // if there is an error retrieving, send the error.
    // nothing after res.send(err) will execute
    if (err)
        return res.send(err);
    res.render('Benutzerverwaltung_Mitarbeiter',{
        users: users || []
    });
});
0 голосов
/ 09 января 2020

В пользователях. js, внутри обратного вызова res.render, я замечаю опечатку, когда вы присваиваете свойство users.

Функции-прототипы Array всегда будут выдавать эту ошибку выше, если предполагаемая переменная для хранения массива не определено.

...