Работа с курсорами (НЕ РАБОТАЕТ) - PullRequest
0 голосов
/ 30 мая 2018

Я читал учебник по Работа с курсорами здесь.Я задавался вопросом, где находятся соответствующие модули расположения кода файла для этого урока курсора.Допустим, я хочу повторно использовать этот учебный модуль на People Pieces .У меня есть этот код на people / index.js .

module.exports = {
    extend: 'apostrophe-pieces',
    permissionsFields : true,
    name: 'person',
    label: 'Person',
    pluralLabel: 'People',
    addFields : [
        {
            name: 'firstName',
            label: 'First Name',
            type: 'string',
            required: true,
        },
        {
            name: 'lastName',
            label: 'Last Name',
            type: 'string',
            required: true
        },
        {
            name: 'title',
            label: 'Full Name',
            type: 'string',
            required: true,
            contextual: true
        },
        {
            name: 'slug',
            label: 'Slug',
            type: 'string',
            required: true,
            contextual: true
        },
        {
            name: 'body',
            label: 'Biography',
            type: 'area',
            options: {
                widgets: {
                    'apostrophe-rich-text': {
                        toolbar: ['Bold', 'Italic', 'Link', 'Unlink']
                    },
                    'apostrophe-images': {}
                }
            }
        },
        {
            name: 'phone',
            label: 'Phone',
            type: 'string'
        },
        {
            name: 'thumbnail',
            label: 'Thumbnail',
            type: 'singleton',
            widgetType: 'apostrophe-images',
            options: {
                limit: 1,
                minSize: [200, 200],
                aspectRatio: [1, 1]
            }
        },
        {
            name: 'reputation',
            label: 'Reputation',
            type: 'integer'
        }
    ],
    arrangeFields: [{
            name: 'contact',
            label: 'Contact',
            fields: ['firstName', 'lastName', 'phone']
        },
        {
            name: 'admin',
            label: 'Administrative',
            fields: ['slug', 'published', 'tags']
        },
        {
            name: 'content',
            label: 'Biographical',
            fields: ['thumbnail', 'body']
        }
    ],
    construct: function(self, options) {
        self.beforeSave = function(req, piece, options, callback) {
            // Override title and MUST SET CONTEXTUAL to able to save. Let the 
            // backend self.beforeSave method do this thing.
            // You know why I don't set piece.slug ?
            // Because once you already set title , apostrophe made it for you :)
            // BUT must put contextual : true on slug. If not, it will prompt you :*
            piece.title = piece.firstName + ' ' + piece.lastName;
            return callback();
        }

        return self.apos.docs.getManager('person').find(req, {
                reputation: {
                    $gte: 30
                }
            }).sort({
                updatedAt: -1
            })
            .toArray(function (err, people) {
                console.log(people);
            });
    }
};

Выводит результат на консоль следующим образом: .find() is undefined

Но затем я попытался использовать на стороне браузера, где задействован self.pushAsset,все еще не console.log ничего!Я знаю, что должен следовать этому руководству, используя эту схему.Но давайте немного обсудим код для лучшего понимания.Как насчет того, чтобы повторно использовать код для схемы, которую я сделал для People Pieces?Или есть какое-то конкретное требование или метод для использования для apos.getManager (partsName)?О, кстати, я тоже экспериментировал с people-widget / index.js, но он не работал с той же ошибкой.Если этот урок, которому я не могу следовать, я никогда не пойму, как использовать этот код.Я люблю ApostropheCMS <3 </p>

1 Ответ

0 голосов
/ 02 июня 2018

Я нашел ответ на это.Я также решаю req not defined на моей терминальной консоли.

Итак, я сделал это в app.js для курсора.Наконец, он вывел этот материал.

      'people-pages' : {
        extend : 'apostrophe-pieces-pages',
        construct: function (self, options) {
          return self.apos.docs.getManager('person').find({
            reputation: {
              $gte: 30
            }
          }).toArray(function (err, people) {
            console.log("List of peoples \n",people);
          });
        }
      },
...