title: Conventions for app.js, index.js, and server.js in node.js?
body: <p>In node.js, it seems I run into the same 3 filenames to describe the main entry point to an app:</p>
  
  <ul>
  <li>When using the <code>express-generator</code> package, an <strong><code>app.js</code></strong> file is created as the main entry point for the resulting app.</li>
  <li>When creating a new <code>package.json</code> file via <code>npm init</code>, one is prompted for the main entry point file. The default is given as <strong><code>index.js</code></strong>.</li>
  <li>In some programs I have seen, <strong><code>server.js</code></strong> serves as the main entry point as well.</li>
  </ul>
  
  <p>Other times, still, it seems as though there are subtle differences in their usage. For example, this node app directory structure uses <code>index.js</code> and <code>server.js</code> in different contexts:</p>
  
  <pre><code>app
    |- modules
    |    |- moduleA
    |    |    |- controllers
    |    |    |    |- controllerA.js
    |    |    |    +- controllerB.js
    |    |    |- services
    |    |    |    +- someService.js
    |    |    +- index.js &lt;--------------
    |    +- index.js &lt;-------------------
    |- middleware.js
    +- index.js &lt;------------------------
  config
    +- index.js &lt;------------------------
  web
    |- css
    |- js
  server.js &lt;----------------------------
  </code></pre>
  
  <p>What are the differences, if any, between these three names?</p>