# "TypeError: Cannot read properties of undefined (reading )"

**URL:** <https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518>\
**Category:** General\
**Created:** [26 April 2024 13:23 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518 "2024-04-26T13:23:52Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ouss](https://avatars.discourse-cdn.com/v4/letter/o/50afbb/32.png) [@Ouss](https://discourse.nodered.org/u/Ouss)\
**Post date:** [26 April 2024 13:23 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518/1 "2024-04-26T13:23:53Z")

</div>

I am new user of Node red and I am working on a project to show random question on dashboard.  
The user answers by pushing on one of the presented button (True / False) presented on dashborad.  
When simulating the flow, I have an error : "TypeError: Cannot read properties of undefined (reading 'reponse )".  
Could you help me to find the problem.  
Thank you in advance.  
Here you will find the code.

```auto
[
    {
        "id": "343e552e8fc04ec0",
        "type": "tab",
        "label": "Flow 4",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "78234bc16c766e6a",
        "type": "inject",
        "z": "343e552e8fc04ec0",
        "name": "Départ quiz",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 230,
        "y": 120,
        "wires": [
            [
                "a177a810816289f2"
            ]
        ]
    },
    {
        "id": "a177a810816289f2",
        "type": "function",
        "z": "343e552e8fc04ec0",
        "name": "Générer question",
        "func": "const questions = [\n {\n question: \"La première révolution industrielle a introduit l'utilisation de la vapeur et des machines à vapeur. Vrai ou faux ?\",\n reponse: true\n },\n {\n question: \"La deuxième révolution industrielle était caractérisée par l'utilisation de l'électricité et des chaînes de montage. Vrai ou faux ?\",\n reponse: true\n },\n {\n question: \"La troisième révolution industrielle est souvent appelée \\\"révolution numérique\\\" ou \\\"révolution informatique\\\". Vrai ou faux ?\",\n reponse: true\n },\n {\n question: \"La quatrième révolution industrielle est caractérisée par l'intégration de technologies numériques, biologiques et physiques. Vrai ou faux ?\",\n reponse: true\n }\n];\n\n// Sélectionner aléatoirement une question\nconst questionAleatoire = questions[Math.floor(Math.random() * questions.length)];\n\n// Envoyer la question\nmsg.question = questionAleatoire;\nmsg.payload = questionAleatoire.question;\n//msg.payload = msg.question.reponse;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 510,
        "y": 120,
        "wires": [
            [
                "51c4338cc5116254",
                "eecbd22fdf0c1027"
            ]
        ]
    },
    {
        "id": "51c4338cc5116254",
        "type": "ui_text",
        "z": "343e552e8fc04ec0",
        "group": "c7152d4603350716",
        "order": 1,
        "width": 18,
        "height": 2,
        "name": "",
        "label": "Question",
        "format": "{{msg.payload}}",
        "layout": "col-center",
        "className": "",
        "style": "",
        "font": "",
        "fontSize": "",
        "color": "#000000",
        "x": 800,
        "y": 120,
        "wires": []
    },
    {
        "id": "675199f3b64efb40",
        "type": "ui_button",
        "z": "343e552e8fc04ec0",
        "name": "Vrai",
        "group": "c7152d4603350716",
        "order": 4,
        "width": 3,
        "height": 1,
        "passthru": false,
        "label": "Vrai",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "true",
        "payloadType": "bool",
        "topic": "",
        "topicType": "str",
        "x": 150,
        "y": 240,
        "wires": [
            [
                "1e851fe0b5cfb5df"
            ]
        ]
    },
    {
        "id": "14504d4c6029deef",
        "type": "function",
        "z": "343e552e8fc04ec0",
        "name": "Vérifier réponse",
        "func": "const reponseUtilisateur = msg.payload;\nconst reponseAttendue = msg.question.reponse;\n\nif (reponseUtilisateur === reponseAttendue) {\n msg.payload = \"Correct !\";\n} else {\n msg.payload = \"Incorrect.\";\n}\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 300,
        "wires": [
            [
                "33139767b681cd82",
                "3978b4a960fdb2ab"
            ]
        ]
    },
    {
        "id": "33139767b681cd82",
        "type": "ui_text",
        "z": "343e552e8fc04ec0",
        "group": "c7152d4603350716",
        "order": 10,
        "width": 6,
        "height": 1,
        "name": "Résultat",
        "label": "",
        "format": "{{msg.payload}}",
        "layout": "row-spread",
        "className": "",
        "style": "",
        "x": 760,
        "y": 220,
        "wires": []
    },
    {
        "id": "937eeb5907498e47",
        "type": "ui_button",
        "z": "343e552e8fc04ec0",
        "name": "Faux",
        "group": "c7152d4603350716",
        "order": 6,
        "width": 3,
        "height": 1,
        "passthru": false,
        "label": "Faux",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "false",
        "payloadType": "bool",
        "topic": "",
        "topicType": "str",
        "x": 150,
        "y": 300,
        "wires": [
            [
                "1e851fe0b5cfb5df"
            ]
        ]
    },
    {
        "id": "3978b4a960fdb2ab",
        "type": "debug",
        "z": "343e552e8fc04ec0",
        "name": "Réponse utilisateur",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 830,
        "y": 360,
        "wires": []
    },
    {
        "id": "eecbd22fdf0c1027",
        "type": "debug",
        "z": "343e552e8fc04ec0",
        "name": "debug 1",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 700,
        "y": 40,
        "wires": []
    },
    {
        "id": "1e851fe0b5cfb5df",
        "type": "function",
        "z": "343e552e8fc04ec0",
        "name": "function 1",
        "func": "// Vérifier si msg.question existe et possède la propriété 'reponse'\n\n\nif (msg.question && typeof msg.question === 'object' && msg.question.hasOwnProperty('reponse')) {\n // Votre logique pour vérifier la réponse\n const reponseUtilisateur = msg.payload;\n const reponseAttendue = msg.question.reponse;\n \n\n if (reponseUtilisateur === reponseAttendue) {\n msg.payload = \"Correct !\";\n } else {\n msg.payload = \"Incorrect.\";\n }\n} else {\n // Cas où msg.question est indéfini ou ne possède pas la propriété 'reponse'\n msg.payload = \"Erreur : Données de question manquantes.\";\n const reponseUtilisateur = msg.payload;\n msg.payload = \"valeur utilisateur\";\n msg.payload = reponseUtilisateur;\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 340,
        "y": 260,
        "wires": [
            [
                "14504d4c6029deef"
            ]
        ]
    },
    {
        "id": "6e3306b717982d13",
        "type": "ui_spacer",
        "z": "343e552e8fc04ec0",
        "name": "spacer",
        "group": "c7152d4603350716",
        "order": 2,
        "width": 18,
        "height": 1
    },
    {
        "id": "d31d6539a9186b54",
        "type": "ui_spacer",
        "z": "343e552e8fc04ec0",
        "name": "spacer",
        "group": "c7152d4603350716",
        "order": 3,
        "width": 1,
        "height": 1
    },
    {
        "id": "4caccfd7166af9c1",
        "type": "ui_spacer",
        "z": "343e552e8fc04ec0",
        "name": "spacer",
        "group": "c7152d4603350716",
        "order": 5,
        "width": 10,
        "height": 1
    },
    {
        "id": "3f35559fb7f6ea2c",
        "type": "ui_spacer",
        "z": "343e552e8fc04ec0",
        "name": "spacer",
        "group": "c7152d4603350716",
        "order": 7,
        "width": 1,
        "height": 1
    },
    {
        "id": "f298411fa2a5f24d",
        "type": "ui_spacer",
        "z": "343e552e8fc04ec0",
        "name": "spacer",
        "group": "c7152d4603350716",
        "order": 8,
        "width": 18,
        "height": 1
    },
    {
        "id": "a925aeb749633fbd",
        "type": "ui_spacer",
        "z": "343e552e8fc04ec0",
        "name": "spacer",
        "group": "c7152d4603350716",
        "order": 9,
        "width": 7,
        "height": 1
    },
    {
        "id": "d76a746cb151199e",
        "type": "ui_spacer",
        "z": "343e552e8fc04ec0",
        "name": "spacer",
        "group": "c7152d4603350716",
        "order": 11,
        "width": 5,
        "height": 1
    },
    {
        "id": "c7152d4603350716",
        "type": "ui_group",
        "name": "Default",
        "tab": "95e6a5b444895807",
        "order": 1,
        "disp": true,
        "width": 18,
        "collapse": false,
        "className": ""
    },
    {
        "id": "95e6a5b444895807",
        "type": "ui_tab",
        "name": "Chef d'oeuvre",
        "icon": "dashboard",
        "disabled": false,
        "hidden": false
    }
]

```

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 April 2024 13:54 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518/2 "2024-04-26T13:54:21Z")

</div>

We cannot use your code like that @Ouss.

Please edit your post and put one line above, one line below the code with three back ticks in.  
Like this:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/6/068f4fcb5b7d7e09106001d3b3d56c6c55f7504a.png)

---

<div class="post-metadata">

**Author:** ![Ouss](https://avatars.discourse-cdn.com/v4/letter/o/50afbb/32.png) [@Ouss](https://discourse.nodered.org/u/Ouss)\
**Post date:** [26 April 2024 14:09 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518/3 "2024-04-26T14:09:09Z")

</div>

OK, it's done. Thanks.

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [26 April 2024 14:10 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518/4 "2024-04-26T14:10:00Z")

</div>

Messages on one wire are not available other wires, so your other functions do not see them, so you get errors of undefined.  
You would need to join the messages , then you can compare.  
e.g.

```auto
[{"id":"78234bc16c766e6a","type":"inject","z":"343e552e8fc04ec0","name":"Départ quiz","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":120,"wires":[["a177a810816289f2"]]},{"id":"a177a810816289f2","type":"function","z":"343e552e8fc04ec0","name":"Générer question","func":"const questions = [\n {\n question: \"La première révolution industrielle a introduit l'utilisation de la vapeur et des machines à vapeur. Vrai ou faux ?\",\n reponse: true\n },\n {\n question: \"La deuxième révolution industrielle était caractérisée par l'utilisation de l'électricité et des chaînes de montage. Vrai ou faux ?\",\n reponse: true\n },\n {\n question: \"La troisième révolution industrielle est souvent appelée \\\"révolution numérique\\\" ou \\\"révolution informatique\\\". Vrai ou faux ?\",\n reponse: true\n },\n {\n question: \"La quatrième révolution industrielle est caractérisée par l'intégration de technologies numériques, biologiques et physiques. Vrai ou faux ?\",\n reponse: true\n }\n];\n\n// Sélectionner aléatoirement une question\nconst questionAleatoire = questions[Math.floor(Math.random() * questions.length)];\n\n// Envoyer la question\n\nmsg.payload = questionAleatoire;\nmsg.topic = \"question\";\n//msg.payload = msg.question.reponse;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":120,"wires":[["fb18dd3a7e667099"]]},{"id":"fb18dd3a7e667099","type":"join","z":"343e552e8fc04ec0","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":310,"y":180,"wires":[["eecbd22fdf0c1027","be97bfa00b78d1aa"]]},{"id":"25d62af06f0658b0","type":"inject","z":"343e552e8fc04ec0","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"response","payload":"true","payloadType":"bool","x":130,"y":200,"wires":[["fb18dd3a7e667099"]]},{"id":"e2e6f19f779ccb87","type":"inject","z":"343e552e8fc04ec0","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"response","payload":"false","payloadType":"bool","x":140,"y":240,"wires":[["fb18dd3a7e667099"]]},{"id":"eecbd22fdf0c1027","type":"debug","z":"343e552e8fc04ec0","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":560,"y":100,"wires":[]},{"id":"be97bfa00b78d1aa","type":"switch","z":"343e552e8fc04ec0","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"response","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":470,"y":180,"wires":[["1e851fe0b5cfb5df"]]},{"id":"1e851fe0b5cfb5df","type":"function","z":"343e552e8fc04ec0","name":"function 1","func":"// Vérifier si msg.question existe et possède la propriété 'reponse'\n\n\nif (msg.payload.question) {\n // Votre logique pour vérifier la réponse\n const reponseUtilisateur = msg.payload.response;\n const reponseAttendue = msg.payload.question.reponse;\n \n\n if (reponseUtilisateur === reponseAttendue) {\n msg.payload.answer = \"Correct !\";\n } else {\n msg.payload.answer = \"Incorrect.\";\n }\n} else {\n // Cas où msg.question est indéfini ou ne possède pas la propriété 'reponse'\n msg.payload = \"Erreur : Données de question manquantes.\";\n const reponseUtilisateur = msg.payload;\n msg.payload = \"valeur utilisateur\";\n msg.payload = reponseUtilisateur;\n}\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":220,"wires":[["3978b4a960fdb2ab"]]},{"id":"3978b4a960fdb2ab","type":"debug","z":"343e552e8fc04ec0","name":"Réponse utilisateur","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":790,"y":280,"wires":[]}]

```

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 April 2024 14:17 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518/5 "2024-04-26T14:17:22Z")

</div>

Specifically: in "Vérifier réponse" there is no msg.question so trying to access msg.question.response gives the error.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/f/cfe9be32144ea897905c7a84cfa1d56a4ab07a1e.png)

---

<div class="post-metadata">

**Author:** ![Ouss](https://avatars.discourse-cdn.com/v4/letter/o/50afbb/32.png) [@Ouss](https://discourse.nodered.org/u/Ouss)\
**Post date:** [3 May 2024 09:41 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518/6 "2024-05-03T09:41:43Z")

</div>

Thank you !

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [1 August 2024 09:41 UTC](https://discourse.nodered.org/t/typeerror-cannot-read-properties-of-undefined-reading/87518/7 "2024-08-01T09:41:44Z")

</div>

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
