Рули: Доступ запрещен для разрешения свойства «имя», поскольку оно не является «собственным свойством» своего родителя. - PullRequest
0 голосов
/ 28 февраля 2020

У меня проблема с рулем 4.7.3. Я уже проверил решение из этого запроса: Handlebars: Доступ запрещен для разрешения свойства "from", поскольку оно не является "собственным свойством" его родителя , но это не было решением для моего кода, поэтому я надеюсь, кто-нибудь может мне помочь.

Контроллер. js

submitPosts: (req, res) => {
        // Check the attributs from create.handlebars for success or error message
        const newPost = new Post( {
            surname: req.body.surname,
            name: req.body.name,
            biography: req.body.biography,
            profilpicture: req.body.profilpicture,
            paintings: req.body.paintings,
        });
        // Safe new posts
        newPost.save().then(post => {
            console.log(post);
            flash('success-message', 'new post!')
            res.redirect('/admin/posts');
        });

    },

postModel. js

const
    mongoose = require('mongoose');

const Schema = mongoose.Schema; // get props

const PostSchema = new Schema({
    // define props --> required for a post

    surname: {
        type: String,
        default: ''
    },
    name: {
        type: String,
        default: ''
    },
    biography: {
        type: String,
        default: ''
    },
    profilpicture: {
        type: Object,
    },
    paintings : {
        type: Object,
    }


});

module.exports = mongoose.model('post', PostSchema);

index.handlebars

{{#each post}}
            <tr>
                <td>{{ surname }}</td>
                <td>{{ name }}</td>
                <td><img style="width: 100px; height:100px;" src="{{ profilpicture }}"></td>
                <td>{{ biography }}</td>
                <td><img style="width: 100px; height:100px;" src="{{ paintings }}"></td>
            </tr>
            {{/each}}

Уже испробовал каждую возможность из другого запроса о переполнении стека, другой версии руля, изменения кода маршрутизатора, ... НИЧЕГО НЕ РАБОТАЕТ: (

1 Ответ

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

Просто была та же самая проблема, которая сломала мне нервы. Пробовал дополнительные пакеты и т. Д. c, но, в конце концов, простая команда решает эту проблему. Это команда ".lean ()". Подробнее можно найти здесь: ссылка на пн goose документы для lean ()

мой пример кода:

// show message page Route
router.get("/", (req, res) => {
//read all Message entries from db
   Message.find() 
   //sort them descending by date property
   .sort({ date: "desc" })
   .lean()
   //take these and call the rendered page and pass them as object to the page
   .then(messages => {
     res.render("messages/show_messages", { messages: messages });
   });
});
...