Search code examples
node.jsintellij-ideaexpresssyntax-highlightingwebstorm

How to fix WebStorm not recognizing some Node.js Express properties?


After execute express mysite and ``npm install -d` I opened the generated directory with WebStorm, the following Express methods aren't recognized by the IDE:

app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());

How to fix that?

Note: The IDE was capable to recognize lot of new things after I did this and add module directory as JavaScript Library in the settings, but still not recognize the above mentioned methods. See the image to see what the IDE recognized so far enter image description here

In this following image you can see what the IDE still not recognize:

enter image description here


Solution

  • This applies to almostly any JS project out there. You should explicitly define an object's properties or write JSDocs:

    /**
     * @memberOf   myLib
     * or
     * @name       myLib.MyDynamicallyLoadedModule
     */
    var MyDynamicallyLoadedModule = {};
    

    Otherwise, WebStorm cannot understand that you have dynamic properties.

    (yeah, I know you're refering to Express, but that's how WebStorm works)