Jade - пытаюсь отобразить данные коллекции из mongodb - PullRequest
0 голосов
/ 26 мая 2019

я хочу отобразить данные из коллекции mongodb

Я использую Pug для и хочу отобразить мой сбор данных в Mongodb

но я понятия не имею, об этой ошибке

Я пробовал это

это мой файл .pug

extends layout

block content
    if registrations.length
        table
            tr
                th Name
                th Email
            each registration in registrations
                tr
                    td=registration.name
                    td=registration.email
    else
        p No registrations yet

это мой файл index.js


const Registration = mongoose.model('Registration');
router.get('/registrations', (req, res) => {
    Registration.find()
        .then((registrations) => {
            res.render('index', { title: 'Listing registrations' });
        })
        .catch(() => { res.send('Something went wrong'); });
});

это сообщение об ошибке

TypeError: E:\web_apps_project\demo-node-app\views\index.pug:4
    2| 

    3| block content

  > 4|     if registrations.length

    5|         table

    6|             tr

    7|                 th Name


Cannot read property 'length' of undefined
    at eval (eval at wrap (E:\web_apps_project\demo-node-app\node_modules\pug-runtime\wrap.js:6:10), <anonymous>:21:19)
    at template (eval at wrap (E:\web_apps_project\demo-node-app\node_modules\pug-runtime\wrap.js:6:10), <anonymous>:79:50)
    at Object.exports.renderFile (E:\web_apps_project\demo-node-app\node_modules\pug\lib\index.js:427:38)
    at Object.exports.renderFile (E:\web_apps_project\demo-node-app\node_modules\pug\lib\index.js:417:21)
    at View.exports.__express [as engine] (E:\web_apps_project\demo-node-app\node_modules\pug\lib\index.js:464:11)
    at View.render (E:\web_apps_project\demo-node-app\node_modules\express\lib\view.js:135:8)
    at tryRender (E:\web_apps_project\demo-node-app\node_modules\express\lib\application.js:640:10)
    at Function.render (E:\web_apps_project\demo-node-app\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (E:\web_apps_project\demo-node-app\node_modules\express\lib\response.js:1012:7)
    at Registration.find.then (E:\web_apps_project\demo-node-app\routes\index.js:36:17)
    at process._tickCallback (internal/process/next_tick.js:68:7)

1 Ответ

1 голос
/ 26 мая 2019

Вам необходимо передать регистрации, возвращенные из запроса к базе данных, в шаблон следующим образом:

router.get('/registrations', (req, res) => {
    Registration.find()
        .then((registrations) => {
            res.render('index', { title: 'Listing registrations', 'registrations': registrations });
        })
        .catch(() => { res.send('Something went wrong'); });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...