MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Uncaught SyntaxError: Unexpected token return

    Scheduled Pinned Locked Moved Solved Troubleshooting
    9 Posts 2 Posters 3.0k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • htilburgsH Offline
      htilburgs
      last edited by htilburgs

      I’m creating a new module. I’m testing and get the error “Uncaught SyntaxError: Unexpected token return” at the line where is

      return table;
      

      This is the part where it goes wrong.
      I’ve been looking for typos and other errors, but cannot find them.
      Has anybody a clue?

      
      	getDom: function() {
      		
      		// creating the table
      		var table = document.createElement("table");
      		table.className = "small";
      		
      		// creating the wrapper
      		var wrapper = document.createElement("div");
      		wrapper.className = "wrapper";
      		wrapper.style.maxWidth = this.config.maxWidth;
      	
      		// The loading sequence
              	if (!this.loaded) {
                  	    wrapper.innerHTML = "Loading....";
                  	    wrapper.classList.add("bright", "light", "small");
                  	    return wrapper;
              	}	
      		
      		var MWB = this.MWB;
      
      		// creating the tablerows
      		var WoonplaatsRow = document.createElement("tr")
      		WoonplaatsRow.className = "woonplaats-row";
      		
      		var WoonplaatsCell = document.createElement("td");
      		WoonplaatsCell.className = "small";
      		WoonplaatsCell.innerHTML = "Regel1";
      		WoonplaatsRow.appendChild(WoonplaatsCell);
      		table.appendChild(WoonplaatsRow);
      		
      		var TemperatuurRow = document.createElement("tr")
      		TemperatuurRow.className = "temperatuur-row";
      		
      		var TemperatuurCell = document.createElement("td");
      		TemperatuurCell.className = "small";
      		TemperatuurCell.innerHTML = "Regel2"
      		TemperatuurRow.appendChild(TemperatuurCell);
      		table.appendChild(TemperatuurRow);
      					
      		}		
      		return table;		
      	
      	}, // <-- closes the getDom function from above```

      (still trying to learn JS, but not afraid to ask and AI is my best friend) ☺

      S 1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil @htilburgs
        last edited by

        @htilburgs said in Uncaught SyntaxError: Unexpected token return:

          }		
          return table;		
        

        u have an extra close brace, which matches up with the getDom() {
        and so, that return is just hanging out there

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        1 Reply Last reply Reply Quote 0
        • htilburgsH Offline
          htilburgs
          last edited by

          @sdetweil , thanx, missed that.
          Now that this part is running the JSON data is fetched. But when I trying to show the data I get an error:

          Uncaught SyntaxError: Unexpected number
          

          This error is created by the zero in the line:
          WoonplaatsCell.innerHTML = MWB.0.plaats;

          		var MWB = this.MWB;
          
          		// creating the tablerows
          		var WoonplaatsRow = document.createElement("tr");
          		WoonplaatsRow.className = "woonplaats-row";
          		
          		var WoonplaatsCell = document.createElement("td");
          		WoonplaatsCell.className = "small";
          		WoonplaatsCell.innerHTML = MWB.0.plaats;
          		WoonplaatsRow.appendChild(WoonplaatsCell);
          		table.appendChild(WoonplaatsRow);
          

          The problem seems that I cannot use the 0 in the command.

          This is the JSON result

          object{1}
          	liveweer[1]
          		0{49}
          			alarm: "0"
          			d0neerslag: "4"
          			d0tmax: "12"
          			plaats: "Amsterdam"
          			...
          

          I used a JSON checker and it says that it’s valid JSON.
          How do I display the data from this result, if I cannot use the 0?

          (still trying to learn JS, but not afraid to ask and AI is my best friend) ☺

          1 Reply Last reply Reply Quote 0
          • S Offline
            sdetweil
            last edited by

            use a variable to hold the value

            var x = 0

            WoonplaatsCell.innerHTML = MWB.x.plaats;
            or use a literal

            WoonplaatsCell.innerHTML = MWB.[‘0’].plaats;

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            1 Reply Last reply Reply Quote 0
            • htilburgsH Offline
              htilburgs
              last edited by

              No luck…
              I’ve tried both of the options:

              	var MWB = this.MWB;
              	var n = 0;
              
              	// creating the tablerows
              	var WoonplaatsRow = document.createElement("tr");
              	WoonplaatsRow.className = "woonplaats-row";
              	
              	var WoonplaatsCell = document.createElement("td");
              	WoonplaatsCell.className = "small";
              	WoonplaatsCell.innerHTML = MWB.n.plaats;
              	WoonplaatsRow.appendChild(WoonplaatsCell);
              	table.appendChild(WoonplaatsRow);
              

              Error: Uncaught (in promise) TypeError: Cannot read property ‘plaats’ of undefined

              	var MWB = this.MWB;
              
              	// creating the tablerows
              	var WoonplaatsRow = document.createElement("tr");
              	WoonplaatsRow.className = "woonplaats-row";
              	
              	var WoonplaatsCell = document.createElement("td");
              	WoonplaatsCell.className = "small";
              	WoonplaatsCell.innerHTML = MWB.['0'].plaats;
              	WoonplaatsRow.appendChild(WoonplaatsCell);
              	table.appendChild(WoonplaatsRow);
              

              Error: Uncaught SyntaxError: Unexpected token [

              So both of the options give an error.

              (still trying to learn JS, but not afraid to ask and AI is my best friend) ☺

              S 1 Reply Last reply Reply Quote 0
              • S Offline
                sdetweil @htilburgs
                last edited by

                @htilburgs said in Uncaught SyntaxError: Unexpected token return:

                WoonplaatsCell.innerHTML = MWB.[‘0’].plaats;

                sorry, my bad, try these

                WoonplaatsCell.innerHTML = MWB[n].plaats;
                WoonplaatsCell.innerHTML = MWB['0'].plaats;
                

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                htilburgsH 1 Reply Last reply Reply Quote 0
                • htilburgsH Offline
                  htilburgs @sdetweil
                  last edited by

                  @sdetweil YES, that did the trick! Learning a lot these few days.
                  Thanks again.

                  Is this notation always like this if you’re working with numbers?

                  (still trying to learn JS, but not afraid to ask and AI is my best friend) ☺

                  S 1 Reply Last reply Reply Quote 0
                  • S Offline
                    sdetweil @htilburgs
                    last edited by

                    @htilburgs not so much numbers, but variable data… the notation

                    MWB.n.plaats
                    

                    means the plaats element of the n element of MWB
                    so the dot notation treats the between dot things as literals…

                    a number can’t be a variable name literal in this sense…
                    so, you need the bracket notation [] (and remove the left side dot when u use it this way)

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    htilburgsH 1 Reply Last reply Reply Quote 0
                    • htilburgsH Offline
                      htilburgs @sdetweil
                      last edited by

                      @sdetweil Oké, thank you for the explanation.

                      (still trying to learn JS, but not afraid to ask and AI is my best friend) ☺

                      1 Reply Last reply Reply Quote 0
                      • 1 / 1
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy