首页 > 解决方案 > 在 keystone.js 中使用“updatedBy”实体获取用户信息

问题描述

我正在尝试通过设置track: true. 但是updatedBy返回的是user id. 我想将跟踪的用户数据推送到元素。在用户模型执行内部,它element.userDetials正在工作,但没有将数据推送到元素。在用户模型之外作为undefined.

view.on('init', function (next) {

    var q = keystone.list('Post').paginate({
        page: req.query.page || 1,
        perPage: 5,
        //maxPages: 10,
        // filters: {
        //  state: 'published',
        // },
    })
        .sort('-publishedDate')
        .populate('author categories');

    if (locals.data.category) {
        q.where('categories').in([locals.data.category]);
    }

    q.exec(function (err, results) {
        locals.data.posts = results;
        locals.data.posts.results.forEach(function(element,index){      

            User.model.findById(element.updatedBy).exec(function(error,user){
                element.userDetails = 'Dr. ' + user.name.first + user.name.last;
                console.log(element.userDetails);
                next(error);
            });


        });
        next(err);
    });
});

标签: node.jsexpressmongoosekeystonejs

解决方案


推荐阅读