# OPC UA server giving “TypeError: Cannot read properties of undefined (reading ‘indexOf’)”

**URL:** <https://discourse.nodered.org/t/opc-ua-server-giving-typeerror-cannot-read-properties-of-undefined-reading-indexof/73197>\
**Category:** Industrial\
**Created:** [5 January 2023 03:45 UTC](https://discourse.nodered.org/t/opc-ua-server-giving-typeerror-cannot-read-properties-of-undefined-reading-indexof/73197 "2023-01-05T03:45:36Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![magicfire](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/magicfire/32/93420_2.png) [@magicfire](https://discourse.nodered.org/u/magicfire)\
**Post date:** [29 January 2023 08:15 UTC](https://discourse.nodered.org/t/opc-ua-server-giving-typeerror-cannot-read-properties-of-undefined-reading-indexof/73197/3 "2023-01-29T08:15:55Z")

</div>

I have had an experiment as this ,may this help you.  
[OPC UA](https://mp.weixin.qq.com/s?__biz=MzAxMTE1NjQ0Mg==&mid=2448836759&idx=1&sn=c7f999b3e776219c352b8890797bf1ad&chksm=8f478622b8300f3454582135497df3d2951a57dad445f2d2b05870465f377e06bb9e827c21fa&token=1331379083&lang=zh_CN#rd)

The code is here

```auto
[
    {
        "id": "b508aa4f81d0d6ea",
        "type": "tab",
        "label": "娴佺▼ 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "ce47e8b78311a345",
        "type": "OpcUa-Endpoint",
        "endpoint": "opc.tcp://localhost:54840",
        "secpol": "None",
        "secmode": "None",
        "none": true,
        "login": false,
        "usercert": false,
        "usercertificate": "",
        "userprivatekey": ""
    },
    {
        "id": "9fbb37bba5b5057d",
        "type": "modbus-client",
        "name": "",
        "clienttype": "simpleser",
        "bufferCommands": true,
        "stateLogEnabled": false,
        "queueLogEnabled": false,
        "failureLogEnabled": true,
        "tcpHost": "127.0.0.1",
        "tcpPort": "502",
        "tcpType": "DEFAULT",
        "serialPort": "/dev/ttyS4",
        "serialType": "RTU",
        "serialBaudrate": "9600",
        "serialDatabits": "8",
        "serialStopbits": "1",
        "serialParity": "none",
        "serialConnectionDelay": "100",
        "serialAsciiResponseStartDelimiter": "0x3A",
        "unit_id": 1,
        "commandDelay": 1,
        "clientTimeout": 1000,
        "reconnectOnTimeout": true,
        "reconnectTimeout": 2000,
        "parallelUnitIdsAllowed": true,
        "showWarnings": true,
        "showLogs": true
    },
    {
        "id": "e950412533eed178",
        "type": "debug",
        "z": "b508aa4f81d0d6ea",
        "name": "debug 1",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 620,
        "y": 140,
        "wires": []
    },
    {
        "id": "f0c0776d21bf79f7",
        "type": "OpcUa-Client",
        "z": "b508aa4f81d0d6ea",
        "endpoint": "ce47e8b78311a345",
        "action": "write",
        "deadbandtype": "a",
        "deadbandvalue": 1,
        "time": 10,
        "timeUnit": "s",
        "certificate": "n",
        "localfile": "",
        "localkeyfile": "",
        "securitymode": "None",
        "securitypolicy": "None",
        "folderName4PKI": "",
        "name": "鍐欏叆鏈嶅姟鍣?,
        "x": 410,
        "y": 140,
        "wires": [
            [
                "e950412533eed178"
            ]
        ]
    },
    {
        "id": "9c741f3ac1bfd2a9",
        "type": "OpcUa-Item",
        "z": "b508aa4f81d0d6ea",
        "item": "ns=1;s=pressure",
        "datatype": "Double",
        "value": "",
        "name": "",
        "x": 420,
        "y": 60,
        "wires": [
            [
                "f0c0776d21bf79f7"
            ]
        ]
    },
    {
        "id": "4f42326772323433",
        "type": "OpcUa-Item",
        "z": "b508aa4f81d0d6ea",
        "item": "ns=1;s=pressure",
        "datatype": "Double",
        "value": "",
        "name": "",
        "x": 240,
        "y": 380,
        "wires": [
            [
                "dce8b173b8cf3390"
            ]
        ]
    },
    {
        "id": "dce8b173b8cf3390",
        "type": "OpcUa-Client",
        "z": "b508aa4f81d0d6ea",
        "endpoint": "ce47e8b78311a345",
        "action": "read",
        "deadbandtype": "a",
        "deadbandvalue": 1,
        "time": 10,
        "timeUnit": "s",
        "certificate": "n",
        "localfile": "",
        "localkeyfile": "",
        "securitymode": "None",
        "securitypolicy": "None",
        "folderName4PKI": "",
        "name": "浠庢湇鍔″櫒璇?,
        "x": 450,
        "y": 340,
        "wires": [
            [
                "6d2b8f5608e9db13"
            ]
        ]
    },
    {
        "id": "903b5b2dfdc6bb06",
        "type": "inject",
        "z": "b508aa4f81d0d6ea",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "2",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 180,
        "y": 280,
        "wires": [
            [
                "4f42326772323433"
            ]
        ]
    },
    {
        "id": "6d2b8f5608e9db13",
        "type": "debug",
        "z": "b508aa4f81d0d6ea",
        "name": "debug 2",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 620,
        "y": 240,
        "wires": []
    },
    {
        "id": "bb1c6ccd1a959c23",
        "type": "opcua-compact-server",
        "z": "b508aa4f81d0d6ea",
        "port": 54840,
        "endpoint": "",
        "productUri": "",
        "acceptExternalCommands": true,
        "maxAllowedSessionNumber": 10,
        "maxConnectionsPerEndpoint": 10,
        "maxAllowedSubscriptionNumber": 100,
        "alternateHostname": "",
        "name": "",
        "showStatusActivities": false,
        "showErrors": false,
        "allowAnonymous": true,
        "individualCerts": false,
        "isAuditing": false,
        "serverDiscovery": true,
        "users": [],
        "xmlsetsOPCUA": [],
        "publicCertificateFile": "",
        "privateCertificateFile": "",
        "registerServerMethod": 1,
        "discoveryServerEndpointUrl": "",
        "capabilitiesForMDNS": "",
        "maxNodesPerRead": 1000,
        "maxNodesPerWrite": 1000,
        "maxNodesPerHistoryReadData": 100,
        "maxNodesPerBrowse": 3000,
        "maxBrowseContinuationPoints": 10,
        "maxHistoryContinuationPoints": 10,
        "delayToInit": 1000,
        "delayToClose": 200,
        "serverShutdownTimeout": 100,
        "addressSpaceScript": "function constructAlarmAddressSpace(server, addressSpace, eventObjects, done) {\n // server = the created node-opcua server\n // addressSpace = address space of the node-opcua server\n // eventObjects = add event variables here to hold them in memory from this script\n\n // internal sandbox objects are:\n // node = the compact server node,\n // coreServer = core compact server object for debug and access to NodeOPCUA\n // this.sandboxNodeContext = node context node-red\n // this.sandboxFlowContext = flow context node-red\n // this.sandboxGlobalContext = global context node-red\n // this.sandboxEnv = env variables\n // timeout and interval functions as expected from nodejs\n\n const opcua = coreServer.choreCompact.opcua;\n const LocalizedText = opcua.LocalizedText;\n const namespace = addressSpace.getOwnNamespace();\n\n const Variant = opcua.Variant;\n const DataType = opcua.DataType;\n const DataValue = opcua.DataValue;\n\n var flexServerInternals = this;\n\n this.sandboxFlowContext.set(\"pressure\", 0);\n\n coreServer.debugLog(\"init dynamic address space\");\n const rootFolder = addressSpace.findNode(\"RootFolder\");\n\n const myDevice = namespace.addFolder(rootFolder.objects, {\n \"browseName\": \"PN6400\"\n });\n const gpioFolder = namespace.addFolder(myDevice, { \"browseName\": \"parameters inputs\" });\n const isoInputs = namespace.addFolder(gpioFolder, {\n \"browseName\": \"Inputs\"\n });\n\n const paraInput = namespace.addVariable({\n \"organizedBy\": isoInputs,\n \"browseName\": \"pressure\",\n \"nodeId\": \"ns=1;s=pressure\",\n \"dataType\": \"Double\",\n \"value\": {\n \"get\": function () {\n return new Variant({\n \"dataType\": DataType.Double,\n \"value\": flexServerInternals.sandboxFlowContext.get(\"pressure\")\n });\n },\n \"set\": function (variant) {\n flexServerInternals.sandboxFlowContext.set(\n \"pressure\",\n parseFloat(variant.value)\n );\n return opcua.StatusCodes.Good;\n }\n }\n });\n\n //------------------------------------------------------------------------------\n // Add a view\n //------------------------------------------------------------------------------\n const viewDI = namespace.addView({\n \"organizedBy\": rootFolder.views,\n \"browseName\": \"PN6400-In\"\n });\n viewDI.addReference({\n \"referenceType\": \"Organizes\",\n \"nodeId\": paraInput.nodeId\n });\n done();\n}\n",
        "x": 420,
        "y": 240,
        "wires": []
    },
    {
        "id": "078da5faf0d4c676",
        "type": "modbus-read",
        "z": "b508aa4f81d0d6ea",
        "name": "",
        "topic": "",
        "showStatusActivities": false,
        "logIOActivities": false,
        "showErrors": false,
        "showWarnings": true,
        "unitid": "6",
        "dataType": "HoldingRegister",
        "adr": "0",
        "quantity": "1",
        "rate": "2",
        "rateUnit": "s",
        "delayOnStart": false,
        "startDelayTime": "",
        "server": "9fbb37bba5b5057d",
        "useIOFile": false,
        "ioFile": "",
        "useIOForPayload": false,
        "emptyMsgOnFail": false,
        "x": 110,
        "y": 200,
        "wires": [
            [
                "77b09260f0d695a7"
            ],
            [
                "b8be7f31e27c5ca2"
            ]
        ]
    },
    {
        "id": "77b09260f0d695a7",
        "type": "modbus-response",
        "z": "b508aa4f81d0d6ea",
        "name": "鐩戝惉",
        "registerShowMax": 20,
        "x": 270,
        "y": 180,
        "wires": []
    },
    {
        "id": "b8be7f31e27c5ca2",
        "type": "function",
        "z": "b508aa4f81d0d6ea",
        "name": "瑙ｆ瀽鍘嬪姏鍊?,
        "func": "msg.payload = msg.payload.data[0];\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 230,
        "y": 60,
        "wires": [
            [
                "9c741f3ac1bfd2a9"
            ]
        ]
    }
]

```

---

_[View the full topic](https://discourse.nodered.org/t/opc-ua-server-giving-typeerror-cannot-read-properties-of-undefined-reading-indexof/73197)._
