Home > Software engineering >  TypeError: Cannot read property 'variable' of undefined
TypeError: Cannot read property 'variable' of undefined

Time:10-15

I am getting this undefined error in my node js written program. This was the line that was causing the issue

sockets[index].notification = 1;

So in order to resolve this, I did this

if ( typeof sockets[index].notification !== 'undefined' ) {
                              
   sockets[index].notification = 1;
 }

But it still gave the same error

if ( typeof sockets[index].notification_acc_on !== 'undefined' ) {
                                                   ^

TypeError: Cannot read property 'notification' of undefined
    at Socket.<anonymous> (/var/www/html/server.js:506:56)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at TCP.onread (net.js:597:20)

How can I check and handle this so if the variable isn't set, my program doesn't crash at least? In short I want to prevent the crash

CodePudding user response:

It appears that the problem is with sockets[index] being undefined.

if ( typeof sockets[index] !== 'undefined' ) {
                              
   sockets[index].notification = 1;
}

There are other checks you might consider exploring, for example checking for null value, confirming that sockets exists, etc. My response only deals with the immediate problem from the original post.

CodePudding user response:

You reveive this error because either sockets or sockets[index] is undefined. To avoid this error, you can perform the following check:

if (typeof sockets?.[index] !== 'undefined') {
}
  • Related