Мангуста Население показывает только Объект - PullRequest
0 голосов
/ 01 февраля 2019

Использование населением Mongoose для добавления любимых «продуктов» пользователей в объект пользователя.

Настройка:

User.findById(req.user._id, function(err, user) {

            var newFood = new Food({
            name: "tacos",
            image: 'test',
            });

            user.foods = newFood
            user.save();

Затем:

router.get("/dashboard", function (req, res) {

        User.find({currentUser: req.user})
        .populate({path: 'foods'}).
        exec(function (err, foods) {
        if (err) return (err);

Когда я console.log user.foods.name не определен.user.foods - это объект

Как получить user.foods.name? В этом случае ожидается "tacos"

1 Ответ

0 голосов
/ 01 февраля 2019

Ваша проблема в том, что вы на самом деле не понимаете (пока), как работают callbacks и async/await.Ваше выполнение кода идет не так, как вы хотите, поэтому вы приземляетесь на части, где переменные еще не установлены.

Эта проблема не может быть решена только с помощью этого конкретного вопроса / ответа.

Пожалуйста, посмотрите несколько учебных пособий (или прочитайте, если хотите) о том, что такое обратные вызовы.

Если вы свободны в выборе версии своего JS, тогда я предлагаю вам использовать async/await.Это делает вещи НАМНОГО более структурированными, читаемыми и понятными.

НО: Сначала вам нужно полностью понять это.Просто скопируйте его, что приведет к ошибкам и заблуждениям (поверьте мне).

Просто поищите эти руководства в Google, я лично искал бы учебники для YouTube (есть сотни хороших структурированных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...