MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord

    SOLVED fix for black screen in 2.16 and later

    Troubleshooting
    11
    39
    8392
    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.
    • S
      sdetweil last edited by sdetweil

      Cannot find module ‘request’

      In recent mm releases we have removed libraries that are discontinued ( aka deprecated).

      many mm modules used these but didn’t document it. so they fail

      to fix this you need to install the library in the module folder,
      so do

      cd ~/MagicMirror/modules
      
      cd modulename (where modulename is the module having the error)
      

      once there, do

      ls package.json
      

      if the module does NOT provide that file ( ls reponse is ‘No such file or directory’) then do

      npm init -y
      

      NEVER EVER do this in the MagicMirror folder
      if you do/did, then do
      git checkout package.json

      then regardless (in the module folder) do

      npm install ???
      

      where ??? is the library noted in the message Cannot find module ‘???’

      | in the example message above, ??? is request

      to find this message, look in the output of npm start. or if you use pm2 to launch mm do
      pm2 logs --lines=50

      Sam

      Create a working config
      How to add modules

      L 1 Reply Last reply Reply Quote 4
      • Pinned by  S sdetweil 
      • M
        MacG last edited by

        I don’t find the upgrade of MM quite helpful.

        In my case under 2.16 one module (MMM-Fuel) did not work and one of my three calendars could not be loaded with MMM-CalendarExt2. In both cases the certificate error was the reason. The certificate had expired. It was, but there are new ones on the servers.

        After upgrading to MM 2.17, MMM-Fuel now works, but not MMM-CalendarExt2 and MMM-OneTracker. So there are more problems than before. I definitely did not expect this with an upgrade. Set both modules to

        disabled: true
        

        and I’m rid of the black screen for now.

        Now I guess I have to work my way through the post-installation.

        Here as example the MMM-CalendarExt2 Error:

        [24.10.2021 19:48.03.521] [ERROR] App threw an error during load
        [24.10.2021 19:48.03.524] [ERROR] Error: Cannot find module 'request'
        Require stack:
        - /home/pi/MagicMirror/modules/MMM-CalendarExt2/node_helper.js
        - /home/pi/MagicMirror/js/app.js
        - /home/pi/MagicMirror/js/electron.js
        - /home/pi/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js
        -
        at Module._resolveFilename (internal/modules/cjs/loader.js:887:15)
        at Function.n._resolveFilename (electron/js2c/browser_init.js:257:1128)
        at Function.Module._resolveFilename (/home/pi/MagicMirror/node_modules/module-alias/index.js:49:29)
        at Module._load (internal/modules/cjs/loader.js:732:27)
        at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
        at Module.require (internal/modules/cjs/loader.js:959:19)
        at require (internal/modules/cjs/helpers.js:88:18)
        at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-CalendarExt2/node_helper.js:4:17)
        at Module._compile (internal/modules/cjs/loader.js:1078:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10)
        [24.10.2021 19:48.03.525] [ERROR] Whoops! There was an uncaught exception...
        [24.10.2021 19:48.03.531] [ERROR] Error: Cannot find module 'request'
        Require stack:
        - /home/pi/MagicMirror/modules/MMM-CalendarExt2/node_helper.js
        - /home/pi/MagicMirror/js/app.js
        - /home/pi/MagicMirror/js/electron.js
        - /home/pi/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js
        -
        at Module._resolveFilename (internal/modules/cjs/loader.js:887:15)
        at Function.n._resolveFilename (electron/js2c/browser_init.js:257:1128)
        at Function.Module._resolveFilename (/home/pi/MagicMirror/node_modules/module-alias/index.js:49:29)
        at Module._load (internal/modules/cjs/loader.js:732:27)
        at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
        at Module.require (internal/modules/cjs/loader.js:959:19)
        at require (internal/modules/cjs/helpers.js:88:18)
        at Object.<anonymous> (/home/pi/MagicMirror/modules/MMM-CalendarExt2/node_helper.js:4:17)
        at Module._compile (internal/modules/cjs/loader.js:1078:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10) {
        code: 'MODULE_NOT_FOUND',
        requireStack: [
        '/home/pi/MagicMirror/modules/MMM-CalendarExt2/node_helper.js',
        '/home/pi/MagicMirror/js/app.js',
        '/home/pi/MagicMirror/js/electron.js',
        '/home/pi/MagicMirror/node_modules/electron/dist/resources/default_app.asar/main.js',
        undefined
        

        Cannot find module ‘request’ means now what? I don’t know what to put in place of the “xxx”.

        S 2 Replies Last reply Reply Quote 0
        • S
          sdetweil @MacG last edited by sdetweil

          @macg

          where xxx is the library noted in the message cannot find module xxx

          so your message was

           Cannot find module 'request'
          

          so xxx is

          request
          

          just to clarify
          there are MORE libraries not found than just request. so I am trying to teach you all how to read the messages and understand what to do…

          Sam

          Create a working config
          How to add modules

          M 1 Reply Last reply Reply Quote 3
          • M
            MacG @sdetweil last edited by

            @sdetweil Thanks, I will use it that way. MMM-OneTracker has the same “request”. Others had this problem with MMM-DWD-WarnWeather - not me. It is strange.

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

              @macg no not strange. the authors didn’t know what they were supposed to do with libs they used. and it ‘worked’ by doing nothing.

              oops, request has a fatal security bug, and the authors decided the amount of work to fix it wasn’t worth the effort, as new libs are out that don’t have the problem.

              so they discontinued it (aka deprecated), mm doesn’t want to drag that security flaw in and took action to move the base code to another lib, and remove the bad one(s)…

              oops now we have lots of old, some unmaintained, modules that used the only copy of the lib and didn’t say so. .(as a dependency in their module’s package.json file)…

              so nobody knows, and it’s gone. oops…

              Sam

              Create a working config
              How to add modules

              M 1 Reply Last reply Reply Quote 0
              • S
                sdetweil @MacG last edited by sdetweil

                @macg as for the cert error, not the mm code at all

                the certificate authority cert expired and electron didn’t handle it. chromium did

                but we have to upgrade electron to a version that works, and drag along all the other stuff

                libs not found I already explained

                welcome to the world of open source

                in my career at IBM there was one cardinal rule

                never EVER make changes that break existing apps.

                same data in produces the same data out, always.
                u made a mistake?! oops, somehow have to make a DIFFERENT input to get a different output.
                it takes work, and thought and time.
                but developers and customers can work on new value instead of costly rework

                in the new internet world time is critical, so ship, and fix as fast as u can, breaking changes need to be DOCUMENTED. what a relief THAT is for users and customers…!
                and, stuff that can’t keep up will be discarded ‘quickly’…, yeh, sure… hahahaha… customers think that makes their life easier too.

                Sam

                Create a working config
                How to add modules

                1 Reply Last reply Reply Quote 0
                • M
                  MacG @sdetweil last edited by

                  @sdetweil I understand that some authors do not use the current libs. The “strange” referred to the fact that I have no problems with MMM-DWD-WarnWeather, but others have to install the module “request”.

                  Open source is both a curse and a blessing. Now everything works again and MM’s layout changes to the clock module were also quickly undone. 🙂

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

                    @macg said in fix for black screen in 2.16 and later:

                    The “strange” referred to the fact that I have no problems with MMM-DWD-WarnWeather, but others have to install the module “request”.

                    did u npm install request in the mm folder, or in a module folder where there was no package.json, the latter ends up putting it in the mm/node_modules, the same as the former

                    Sam

                    Create a working config
                    How to add modules

                    mumblebaj M 2 Replies Last reply Reply Quote 1
                    • mumblebaj
                      mumblebaj Project Sponsor @sdetweil last edited by mumblebaj

                      Maybe this can help some users.

                      The following will search all *.js files in the modules folder for the reference of request. You can then just enter the module folders and install as per @sdetweil suggestion above. The same can be done for the other missing modules.

                      grep -r -E '('request')' ~/MagicMirror/modules/*/*.js
                      

                      or search for multiple problem modules

                      grep -r -E '('request') | ('valid-url')' ~/MagicMirror/modules/*/*.js
                      

                      Produces the following:

                      7120d3bc-00c1-42a1-ad16-70ee822268e5-image.png

                      S 1 Reply Last reply Reply Quote 1
                      • S
                        sdetweil @mumblebaj last edited by

                        @mumblebaj and then pull off the module name and scan it’s package.json to see if it’s referenced

                        Sam

                        Create a working config
                        How to add modules

                        S L kusselin 3 Replies Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 1 / 4
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy