【发布时间】:2020-06-26 00:49:26
【问题描述】:
Parse-Server 上的 Parse.Cloud.beforeSave 函数有一点问题。这句话让我很困惑:
request.object.set("dbCount", 0);
它以前一直在工作。但是,由于我进行了服务器更新,因此按照HEROKU 的要求位于 heroku-18 堆栈上(cedar-14 堆栈即将报废)。它不再起作用了。
此行的目的是在数据库中存储新项目时将初始化为零的计数器固定。但是,尽管该项目是按应有的方式创建的,但缺少“dbCount”字段。这是为什么?创建字段的正确代码是什么?
作为参考,这里是 beforeSave 函数的相关代码:
Parse.Cloud.beforeSave("TheCollection", async (request) => {
if (!request.object.isNew()) return;
var query;
query = new Parse.Query("TheCollection");
query.equalTo("TITLE",request.object.get("TITLE"));
await query.find().then
(function(resUnit) {
// If there is already a Unit with the same Title, we return an error.
if (resUnit.length) throw "TITLE-USED";
var query;
query = new Parse.Query("TheCollection");
var token = request.user.getSessionToken();
query.find({sessionToken: token}).then
(function(resUnit) {
... some useful processing ...
// This next line is not working as it used to.
request.object.set("dbCount", 0);
});
});
});
【问题讨论】:
-
尝试将
query.find({sessionToken: token}).then改为return query.find({sessionToken: token}).then -
我刚试过。你是对的。这解决了问题。
标签: javascript parse-server mlab heroku-api parse-cloud-code