>PROBLEM
TypeError: Cannot read properties of undefined
>SOLUTION
This error may have many causes.
Here, it's shown a tricky one — cyclic reference, when one file references the other.
Check the example below:
>file1 - SecTools.js
const UserSvc = require('../../models/business/UserSvc');
static verifySToken(req) {
if (req === 'undefined' || req == null) return false;
let userStoken = UserSvc.stokenSvc[req.body.email];
//...
}
>file2: UserSvc.js
const SecTools = require('../security/SecTools');
myOtherfunction() {
user.token = SecTools.signWithJwt(user.email);
}
The SecTools has reference to UserSvc, and vice-e-versa.
Remove the cyclic reference to fix the issue.
>IMPORTANT NOTE
For instance, if the code calls a persistence method that is not recognized (found), to debug the app try to comment previous operations before that method is called. There is a good probability that one operation before (above the call that fails) is throwing an exception that results with this message.
It happens with many compilers, for many programming languages.
Something "mad", unexpected, think about this hypotheses.
Do not take compiler messages as they were always possible to show the real problem that it is causing the issue.
>ENV
Node: 16.13.1
Package Manager: npm 8.5.4
OS: win32 x64
No comments:
Post a Comment