MagicMirror² v2.14.0 is available! For more information about this release, check out this topic.

How can i pass query / parameters from URL to module

  • Module Developer

    Dear Developers,

    i want to redesign one of my modules. Therefore i need a hint how i can make the following possible.

    I want to pass a query / parameters from a module URL, f.e.


    to my module.
    What do i need?

    1. a page in my module folder index.js(?)
    2. code do read the values of querystring and do something with it.

    Maybe somebody can give me a tip how to do that or in which module it was already realized (except MMM-Remote-Control).



  • @AxLed sorry. not quite sure what you mean…

    u want to pass the info from where (how is the user presenting this info) to where

  • Module Developer

    User is presenting / entering datas by URL in his browser and module should be able to handle the datas.

  • @AxLed and did u setup an express path that invokes your node module function?

    the url parms should be there

  • Module Developer

    No i didnt set any path so far, but express path seems to be the right search word and helps.
    If i understood the documentation right, express path has to be located in node_helper.js.
    But i still dont know how to move forward with this information.
    Are there some modules which are using express path, where i can try to figure out how it works?




  • @AxLed MMM-ImagesPhotos uses it…

    the Module wants to use request, so issues a request to a local server (express path)
    which invokes the routine to get the list of photos//

    (instead of doing the sendSocketNotification to the node_module…)

    the express routine is like a cgi pgm invocation…


    Route parameters

    the path can autoparse the url
    Route path: /users/:userId/books/:bookId
    Request URL: http://localhost:3000/users/34/books/8989
    req.params: { “userId”: “34”, “bookId”: “8989” }

    but the result, net, is the parms are in the req (uest) parameter object when the routine is called

  • Module Developer

    Thanks for the response, it think now i have enough to read and i will try to get in up and running.

    I will give feedback within the next day.


  • @AxLed cooll… standing by!

  • @AxLed so, it should be as simple as

    const express = require('express')
    // setup server path handler, for http get request
    this.expressApp.get("/MMM-Navigate",(req,res) =>{this.someFunction(req,res)});
    // handler dump request object
    someFunction: function(request,response){
         console.log("request data="+JSON.stringify(request))
        response.send("Hello from MMM-Navigate");

  • Module Developer

    Here is another example of express;

    const express = require('express')
    const bodyParser = require('body-parser')
    // in your member function of node_helper.js, usually it will be `.start()`
    this.expressApp.use(bodyParser.urlencoded({extended: true}))
    var process = (req, res) => {
      var subpath = req.params.subpath
        var requestObj = {
          path: subpath,
          query: req.query,
          post: req.body,
          method: req.method,
        this.sendSocketNotification("REQUEST_COMING", requestObj)
        res.status(200).send({status: 200})
      } else {
        res.status(400).send({status: 400})
    this.expressApp.get("/YOUR_PATH/:subpath", process)"/YOUR_PATH/:subpath", process) // when you need POST method.

Log in to reply