После обновления с Parse Server 2.8.4 до 3.1.3 агрегированный запрос в облачном коде больше не работает.
Запрос:
const query = new Parse.Query("MyClass");
const pipeline = {
"sort":{"_created_at":-1}
};
const results = await query.aggregate(pipeline);
не работает с ошибкой:
ParseError: 102 Invalid parameter for query: pipeline
Я также пробовал объект конвейера как массив, который также терпит неудачу:
const pipeline = [
{"sort":{"_created_at":-1}}
];
Кажется, это не удается в КлассыRouter.js, который не распознает ключ pipeline.
Это почему?
Обновление: Открыта проблема с Гитхаб, потому что это похоже на ошибку.





Попробуйте обновить сервер и SDK до последних версий.
Эта проблема могла возникнуть из-за того, что вы использовали более новый SDK в более старой версии синтаксического анализа или наоборот.
Попробуйте удалить "parse": "~2.1.x" из ваших зависимостей, так как Parse-Server 3.1.3 установит его за вас. Посмотрите, работает ли это. также убедитесь, что при установке 2.1.0 внутри вашего node_module/parse. parse-server 3.0.0, вероятно, устанавливает более старую версию parse
Удалена зависимость parse от parse-server-example. Развернутый на героку с node_module_cache=false, npm list показывает, что [email protected] установлен под [email protected]. Все еще получаю ошибку.
Можете ли вы добавить журнал консоли, чтобы узнать, исходит ли он от маршрутизатора класса? Он не должен идти к классу маршрутизатора. Сейчас попробую в облачном коде
Я попробовал это в облачном коде, и это работает для меня. Это работает локально?
Вы были правы, это было несоответствие Parse Server и Parse JS SDJ. У меня было два сервера синтаксического анализа, работающих в одной и той же БД для тестирования во время обновления. Оказывается, некоторые URL-адреса на сервере версии 3.x по-прежнему указывали на другой сервер версии 2.8.4. ?♂️ После исправления URL все работает нормально. Спасибо!
Я не использую JS SDK в качестве клиента, SDK используется только через облачный код. Я думаю, что Parse Server сам устанавливает требуемую версию для JS SDK в соответствии с зависимостями пакета? Используя parse-server-example, это зависимости пакета:
"dependencies": { "express": "~4.16.x", "kerberos": "~1.1.x", "parse": "~2.1.x", "parse-server": "3.0.0" }. Когда я только поднимаю сервер синтаксического анализа до версии 3.1.3, запрос завершается ошибкой.