parse-community / parse-community/parse-server

Parse.Cloud.beforeSaveFile, Parse.Cloud.afterSaveFile is not a function, but other triggers work correctly

Open
#9,165 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type:docs
Dominant language
JavaScript
Stars
21.4k
Forks
4.8k
Avg merge
7h 45m
Merged PRs (30d)
11

Description

I run parse server with docker according to the document, run the code in the api manual for testing

Parse.Cloud.beforeSave(Parse.User, (request) => {
  // code here
})
parse_server_dating  | TypeError: Parse.Cloud.beforeSaveFile is not a function
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/triggers/toWebp.js:1:13)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  |     at Module.load (node:internal/modules/cjs/loader:1208:32)
parse_server_dating  |     at Module._load (node:internal/modules/cjs/loader:1024:12)
parse_server_dating  |     at Module.require (node:internal/modules/cjs/loader:1233:19)
parse_server_dating  |     at require (node:internal/modules/helpers:179:18)
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/main.js:1:1)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  | Error on ParseServer.startApp:  TypeError: Parse.Cloud.beforeSaveFile is not a function
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/triggers/toWebp.js:1:13)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  |     at Module.load (node:internal/modules/cjs/loader:1208:32)
parse_server_dating  |     at Module._load (node:internal/modules/cjs/loader:1024:12)
parse_server_dating  |     at Module.require (node:internal/modules/cjs/loader:1233:19)
parse_server_dating  |     at require (node:internal/modules/helpers:179:18)
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/main.js:1:1)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  | TypeError: Parse.Cloud.beforeSaveFile is not a function
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/triggers/toWebp.js:1:13)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  |     at Module.load (node:internal/modules/cjs/loader:1208:32)
parse_server_dating  |     at Module._load (node:internal/modules/cjs/loader:1024:12)
parse_server_dating  |     at Module.require (node:internal/modules/cjs/loader:1233:19)
parse_server_dating  |     at require (node:internal/modules/helpers:179:18)
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/main.js:1:1)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)

Parse.Cloud.afterSaveFile(async ({ file, user }) => {
  const fileObject = new Parse.Object('FileObject');
  fileObject.set('metadata', file.metadata());
  fileObject.set('tags', file.tags());
  fileObject.set('name', file.name());
  fileObject.set('createdBy', user);
  await fileObject.save({ sessionToken: user.getSessionToken() });
});
parse_server_dating  | TypeError: Parse.Cloud.afterSaveFile is not a function
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/triggers/toWebp.js:1:13)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  |     at Module.load (node:internal/modules/cjs/loader:1208:32)
parse_server_dating  |     at Module._load (node:internal/modules/cjs/loader:1024:12)
parse_server_dating  |     at Module.require (node:internal/modules/cjs/loader:1233:19)
parse_server_dating  |     at require (node:internal/modules/helpers:179:18)
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/main.js:1:1)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  | Error on ParseServer.startApp:  TypeError: Parse.Cloud.afterSaveFile is not a function
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/triggers/toWebp.js:1:13)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  |     at Module.load (node:internal/modules/cjs/loader:1208:32)
parse_server_dating  |     at Module._load (node:internal/modules/cjs/loader:1024:12)
parse_server_dating  |     at Module.require (node:internal/modules/cjs/loader:1233:19)
parse_server_dating  |     at require (node:internal/modules/helpers:179:18)
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/main.js:1:1)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  | TypeError: Parse.Cloud.afterSaveFile is not a function
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/triggers/toWebp.js:1:13)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
parse_server_dating  |     at Module.load (node:internal/modules/cjs/loader:1208:32)
parse_server_dating  |     at Module._load (node:internal/modules/cjs/loader:1024:12)
parse_server_dating  |     at Module.require (node:internal/modules/cjs/loader:1233:19)
parse_server_dating  |     at require (node:internal/modules/helpers:179:18)
parse_server_dating  |     at Object.<anonymous> (/parse-server/cloud/main.js:1:1)
parse_server_dating  |     at Module._compile (node:internal/modules/cjs/loader:1358:14)
parse_server_dating  |     at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Parse Server documentation and API manual referenced in the report, then inspect cloud/triggers/toWebp.js and cloud/main.js where the startup error occurs. Determine whether beforeSaveFile and afterSaveFile are supported, and verify that the documented file-trigger behavior no longer produces the reported TypeError.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, nodejs
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.