I am new to using `nodejs` completely, and it seems to be pretty much the go to thing for __everything__ right now. But I program in Visual Studio, and I'm a bit confused about how this works. I will cite an example;

One task I want to do is to get a list of all the files in a directory and all of its sub-directories, and return them as a `string[]` for a javascript `.config` file. I started searching for that and found a lot of answers, but they all kept going back to `nodejs`, for instance, [this one][1], and [this one][2], and [this one][3].

I really wasn't looking for anything having to do with `nodejs`, it just seems to be part of every solution out there. I've installed it, and gotten it to where I can do some simple things like create a very basic server that listens to a port - thanks to simple tutorials written for a moron like me - but I'm having a hard time figuring out how to use these kinds of things in my real programs - specifically `ASP.NET MVC`. I've searched pretty hard on this topic too, and discovered things like `iisnode` and the like that do some partial integration.

But even with all of this, this wealth of information, I am __extremely__ confused. 

I understand that I can use it from a command line, like `PowerShell`, I can run commands from a terminal, and install packages into projects, but I'm having a hard time seeing and finding how this actually translates into literal, real usage in an existing application. I have scoured around for days and days for examples, I've read at least 3 books on nodejs, [The Node Beginner Book][4], [What is Node][5], and [Professional Node.js][6] and to be very honest I am still as lost as ever.

Everything I read keeps assuming I am doing things from the command line or a terminal, but all of the applications I see for node assume you're writing a web application. I'm having a really hard time wrapping my head around __how__ you use it __within__ an application. Can anyone assist me with this? Perhaps a working example of an actual program that uses node? I'll take almost anything at this point, though `ASP.NET MVC` is my core system of choice.

I was originally going to post this on `StackOverflow`, but someone suggested that this community was more appropriate for this question.

#Update

I want to make a more clear example of what is confusing me, I'm already learning because of the 1 proposed answer, but let me give more examples.

I program in `Visual Studio`, it has no real concept of `node.js` - in fact, if I try to do things that will run against node, it gives me problems. I often have to code anything related to node in `WebStorm` from `JetBrains`. 

I understand that I can _'compile'_ things with node, what I don't understand is how I can __invoke__ it within my program, not inside of a command line. For example let's say there is a node module that takes an array and does something to it - for sake of example let's say that it sorts everything in the array alphabetically, and it is a _module_ called _supersort_. 

So if I were at the console, I would just type in ...

> node supersort.js

Okay, but now I'm __not__ at the command line. I have published my web application. My user is at a page, let's say `/account/history` and they are seeing a list of every product they have bought. For the sake of argument, say I've got that list as a `object[]` or `string[]` - I realize that is completely absurd and it would be far more complex, but just jive with me.

I want to run _`supersort`_ on this page. But it's live! How do I do it? How do I run this _module_ on their live, active data without manually being there at the console? Is there a set of javascript files I'm supposed to download and call http requests a certain way? Do I wire up a special `IHttpHandler` in `IIS`? I think you can start to see where I am lost. 

#Update 2

Attempting to further emphasize my question, I'll try and cite a more specific example. I want to use the library `Q.js` in my `ASP.NET MVC` application. Now, there is a version 1 that I can seem to run out of the box, but I want to try out version 2 - you can find it linked __[Q.js v2 (beta)][7]__

So I am using Visual Studio, and I'll download the `q.js` file and load it up, but immediately we already have trouble now - if you look at the file's source code right away I see this.

    require("collections/shim");
    var WeakMap = require("collections/weak-map");
    var Iterator = require("collections/iterator");
    var asap = require("asap");

Now I certainly don't have folders with those names in my application - and even though I have `node.js` installed, putting this file in a `<script>` tag does not work, as it says it cannot find the specific libraries. If I go to a console explicitly and type in `npm install -g q@~2`, it will create a folder called `node_modules/q` in my `AppData/Roaming/npm` folder, and this one __does__ have folders for those other libraries.

So what is the right way to do this? It's clear that just having node installed doesn't make node commands work when I try to run the page in ASP.NET MVC - but I also don't understand how to get to the final version of the library that I can include on my application like a normal javascript file and use across the program.


  [1]: http://stackoverflow.com/questions/20822273/best-way-to-get-folder-and-file-list-in-javascript
  [2]: http://stackoverflow.com/questions/2727167/getting-all-filenames-in-a-directory-with-node-js
  [3]: http://sankartypo3.wordpress.com/2013/02/12/how-to-list-files-and-folders-using-nodejs/
  [4]: http://www.amazon.com/Node-Beginner-Book-Manuel-Kiessling-ebook/dp/B005T75AF4/ref=cm_wl_huc_item
  [5]: http://www.amazon.com/What-Is-Node-Brett-McLaughlin-ebook/dp/B005ISQ7JC/ref=cm_wl_huc_item
  [6]: http://www.amazon.com/Professional-Node-js-Building-Javascript-Scalable-ebook/dp/B009L7QETY/ref=cm_wl_huc_item
  [7]: https://github.com/kriskowal/q/blob/v2/q.js