balderdashy / balderdashy/sails

beforeCreate() model not working in bootstrap - proceed is not a function

Open
#7,259 2 comments 0 reactions 0 assignees View on GitHub
try this out please
Dominant language
JavaScript
Stars
22.8k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

**Node version**: 16.8.0
**Sails version** _(sails)_: 1.5.3
**ORM hook version** _(sails-hook-orm)_: 4.0.2
**Sockets hook version** _(sails-hook-sockets)_: 2.0.3
**Organics hook version** _(sails-hook-organics)_: 2.2.1


I'm using the latest sails to install the sample web app, I changed `migrate` -> `drop` and added the following to `Users.js` model
```javascript
beforeCreate: async (valuesToSet, proceed) => {
proceed()
},
beforeUpdate: async (valuesToSet, proceed) => {
proceed()
},
```
During bootstrap on creating a new record in the model, it gives the following error:
```shell
error: Bootstrap encountered an error: (see below)
error: Failed to lift app: TypeError: proceed is not a function
at beforeCreate (/home/abr/sails-test/api/models/User.js:171:5)
at /home/abr/sails-test/node_modules/waterline/node_modules/async/dist/async.js:196:27
at /home/abr/sails-test/node_modules/waterline/node_modules/async/dist/async.js:74:12
at /home/abr/sails-test/node_modules/waterline/node_modules/async/dist/async.js:3113:16
at eachOfArrayLike (/home/abr/sails-test/node_modules/waterline/node_modules/async/dist/async.js:1072:9)
at eachOf (/home/abr/sails-test/node_modules/waterline/node_modules/async/dist/async.js:1120:5)
at Object.eachLimit (/home/abr/sails-test/node_modules/waterline/node_modules/async/dist/async.js:3175:5)
at _maybeRunBeforeLC (/home/abr/sails-test/node_modules/waterline/lib/waterline/methods/create-each.js:207:15)
at Deferred._.extend._WLModel [as _handleExec] (/home/abr/sails-test/node_modules/waterline/lib/waterline/methods/create-each.js:212:9)
at Deferred.exec (/home/abr/sails-test/node_modules/parley/lib/private/Deferred.js:286:10)
at Deferred.tryCatcher (/home/abr/sails-test/node_modules/bluebird/js/release/util.js:11:23)
at ret (eval at makeNodePromisifiedEval (/home/abr/sails-test/node_modules/bluebird/js/release/promisify.js:184:12), :14:23)
at Deferred.toPromise (/home/abr/sails-test/node_modules/parley/lib/private/Deferred.js:572:19)
at Deferred.then (/home/abr/sails-test/node_modules/parley/lib/private/Deferred.js:431:22)
```

Contributor guide

Open the contributing guide

Research direction

Start with the Users.js model and the beforeCreate hook shown in the report, then inspect the Waterline create-each stack entry and the bootstrap code that creates the record. Reproduce the failure with the listed Node and Sails versions; done means bootstrap creates the user without the “proceed is not a function” error and the lifecycle hook completes.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
backend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.