Read the statement by Michael Teeuw here.
Testing my module, it is stuck loading
-
@l0zarus open the develpers window , ctrl-shift-i, then select the sources tab, modules in the left nav, and find your module
click the number in the left nav for the 1st line under your getdom
and then hit f5 to refesh the page and stop at your getdom function
-
@l0zarus also, NEVER fetch inside getDom()… get the data first, THEN call updateDom() to advise there is data ready …
you can use the start function, or better, use the notifcationReceived function for “ALL_MODULES_LOADED” then kick off a timer or an interval
at the end of good data received, call this.updateDom()getdom must ALWAYS return a dom element (aka wrapper at least)
-
@sdetweil I’m not sure I’m following this. Do you mean in VS code or with the Magic Mirror application running?
-
@l0zarus magicmirror… of course

-
@sdetweil well my module isn’t even in the modules folder even though it is in the config file which is confusing to me. I noticed in your screenshot that default is a subfolder of modules. That is true in my path to the module, but they are appearing as one combined folder. I’m not sure why that is the case. In any event, clearly my module was never actually loading at all. Any idea what the issue is here? I’ll start to update my code to remove the API call from the getDom function.
-
@l0zarus AH, now we’re getting somewhere
go to the console tab and put part of your module name in the filter field
also,
modulename in config.js = folder name in modules folder = filename of the .js file
AND the register nameconfig.js module:"SampleModule", modules/SampleModule/SampleModule.js Module.register("SampleModule", {ALL these MUST match else your module is not loaded
system is case sensitive -
@sdetweil Alright I have a few errors showing, and I’m having an issue moving my file to the modules folder. I have verified the name is the same across the folder, the js file, and the config file.
First, I got the following message when trying to move it:
mv MMM-ConcertsAroundMe /modules mv: cannot move 'MMM-ConcertsAroundMe' to '/modules': Permission deniedWill paste the console errors as well, I am moving between my mac and raspberry pi
-
@l0zarus its not /modules (that is in the root)
depending where your module is , the quick way
mv MMM-ConcertsAroundMe ~/MagicMirror/modules -
@sdetweil aha! I had tried that as well, but I did not include the ~. I am learning so much from this project :)
-
@l0zarus said in Testing my module, it is stuck loading:
I am moving between my mac and raspberry pi
magicmirror will run on your mac…
use my install script
-
@l0zarus ~ means users home folder (less letters to type, remember most of this linux console stuff was created on slow 300bps phone lines… the fewer letters the better)
-
@sdetweil alright here are the errors:

-
@l0zarus did yiu npm install luxon in your module folder
npm init -y npm install luxonif u don’t do the npm init in your module folder the module will be installed in the root MM node_modules, then not found here
-
@sdetweil ok that was an issue! I got luxon installed in the right place. Now I’m getting the following errors:

I tested the exact link from the first error “Access to fetch at…” in postman and I get a clean response
-
@l0zarus lovely CORS… welcome to the fun
postman didn’t use localhost it used the local IP address
you ‘might’ get to fix it in config.js ? maybe
from terminal window do
ip addr
that give u the local machine ip address
use that in the config.jsaddress:""instead of locahost…
CORS basically means, “hey, you are not in our known approved access network, get lost”
-
@sdetweil ugh, well that did not do it unfortunately. I’m not sure what to do now. It recommends setting the requests mode to ‘no-cors’. Is that something that might work here?
-
@l0zarus CORS is controlled by the server side, NOTHING the client can do except change the capability
there used to be free services where you could send the request to them and they would forward (from a known address) and send the response back to you
a CORS proxy, most of those have gone away or are no longer free.we’ve added a cors safe fetch (we think) to the MM system
see ~/MagicMirror/js/server_functions.js
( I have tried to break that into understandable reusable sections below )u change your url request to this cors_url
let header_stuff_if_any="sendheaders=header1:value1,header2:value2&expectedheaders=header1,header2" // empty string, "", if no headers let original_url="http://www.test.com/path?param1=value1" ----------- let_cors_url= "http://"+ // use the config.address value, unless its "0.0.0.0", then use "localhost" config.address==="0.0.0.0"?"localhost":config.address + ":" +config.port+ "/cors?"+ header_stuff +"&url="+ original_urland we will send it, and return the response to your fetch
-
@sdetweil I’m struggling to understand the first part. I don’t think there is any header stuff that I know of? the url is based on this format: https://api.seatgeek.com/2/events?client_id=MYCLIENTID&client_secret=MYCLIENTSECRET with other stuff added as you saw in my source code in the original post.
honestly the whole thing is a bit confusing to me. I’m not sure where it is supposed to go… as part of where I define the URL variable?
-
@l0zarus ok, no headers set it to “”
you use that code to build your fetch url (and put it in the original_url variable)
I just created the JS code to do the build from the parts
the comment in the linked file just doesn’t help me at all…and when you execute the fetch, it sends it to magic mirror code that forwards on supposedly to avoid the cors problem…
-
@sdetweil I’m going to try to fill it out like a template, let me know if I’m following.
let header = "", let original_url = "https://api.seatgeek.com/2/events?client_id=MYCLIENTID&client_secret=MYCLIENTSECRET " let cors_url = "http://" + config.address==="IP ADDRESS HERE"?"localhost":config.address + ":" + config.port + "/cors?" + header + "&url=" + original_urland then I
fetch(cors_url)?Is this right?
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login