coffee-express
Version:
A Template for NodeJs Application using Express, CoffeeScript, Jade, and Stylus.
27 lines (23 loc) • 7.28 kB
HTML
<html><head><title>index.coffee</title><meta http-equiv="Content-Type" content="text/html" charset="UTF-8"><link rel="stylesheet" media="all" href="../docco.css"></head><body><div id="container"><div id="background"></div><div id="jump_to">Jump To …<div id="jump_wrapper"><div id="jump_page"><a href="../index.html" class="source"><span class="file_name">README</span></a><a href="../src/config/index.coffee.html" class="source "><span class="base_path">src / config / </span><span class="file_name">index.coffee</span></a><a href="../src/controllers/index.coffee.html" class="source "><span class="base_path">src / controllers / </span><span class="file_name">index.coffee</span></a><a href="../src/controllers/ping.coffee.html" class="source "><span class="base_path">src / controllers / </span><span class="file_name">ping.coffee</span></a><a href="../src/controllers/posts.coffee.html" class="source "><span class="base_path">src / controllers / </span><span class="file_name">posts.coffee</span></a><a href="../src/index.coffee.html" class="source selected"><span class="base_path">src / </span><span class="file_name">index.coffee</span></a><a href="../src/models/post.coffee.html" class="source "><span class="base_path">src / models / </span><span class="file_name">post.coffee</span></a><a href="../src/routes.coffee.html" class="source "><span class="base_path">src / </span><span class="file_name">routes.coffee</span></a></div></div></div><table cellpadding="0" cellspacing="0"><thead><tr><th class="docs"><h1>index.coffee</h1><div class="filepath">src/</div></th><th class="code"></th></tr></thead><tbody><tr id="section-1"><td class="docs"><div class="pilwrap"><a href="#section-1" class="pilcrow">¶</a></div>
</td><td class="code"><div class="highlight"><pre><span class="nv">express = </span><span class="nx">require</span> <span class="s">'express'</span>
<span class="nv">stylus = </span><span class="nx">require</span> <span class="s">'stylus'</span>
<span class="nv">assets = </span><span class="nx">require</span> <span class="s">'connect-assets'</span>
<span class="nv">mongoose = </span><span class="nx">require</span> <span class="s">'mongoose'</span></pre></div></td></tr><tr id="section-2"><td class="docs"><div class="pilwrap"><a href="#section-2" class="pilcrow">¶</a></div><h3>Basic application initialization</h3>
<p>Create app instance.</p>
</td><td class="code"><div class="highlight"><pre><span class="nv">app = </span><span class="nx">express</span><span class="p">()</span></pre></div></td></tr><tr id="section-3"><td class="docs"><div class="pilwrap"><a href="#section-3" class="pilcrow">¶</a></div><p>Initialize routes</p>
</td><td class="code"><div class="highlight"><pre><span class="nv">routes = </span><span class="nx">require</span> <span class="s">'./routes'</span>
<span class="nx">routes</span><span class="p">(</span><span class="nx">app</span><span class="p">)</span></pre></div></td></tr><tr id="section-4"><td class="docs"><div class="pilwrap"><a href="#section-4" class="pilcrow">¶</a></div><p>Define Port</p>
</td><td class="code"><div class="highlight"><pre><span class="nv">app.port = </span><span class="nx">process</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">PORT</span> <span class="o">or</span> <span class="nx">process</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">VMC_APP_PORT</span> <span class="o">or</span> <span class="mi">3000</span></pre></div></td></tr><tr id="section-5"><td class="docs"><div class="pilwrap"><a href="#section-5" class="pilcrow">¶</a></div><p>Config module exports has <code>setEnvironment</code> function that sets app settings depending on environment.</p>
</td><td class="code"><div class="highlight"><pre><span class="nv">config = </span><span class="nx">require</span> <span class="s">"./config"</span>
<span class="nx">app</span><span class="p">.</span><span class="nx">configure</span> <span class="s">'production'</span><span class="p">,</span> <span class="s">'development'</span><span class="p">,</span> <span class="s">'testing'</span><span class="p">,</span> <span class="o">-></span>
<span class="nx">config</span><span class="p">.</span><span class="nx">setEnvironment</span> <span class="nx">app</span><span class="p">.</span><span class="nx">settings</span><span class="p">.</span><span class="nx">env</span></pre></div></td></tr><tr id="section-6"><td class="docs"><div class="pilwrap"><a href="#section-6" class="pilcrow">¶</a></div><p>TODO: move to <code>config</code></p>
</td><td class="code"><div class="highlight"><pre><span class="nx">mongoose</span><span class="p">.</span><span class="nx">connect</span> <span class="s">'mongodb://localhost/example'</span></pre></div></td></tr><tr id="section-7"><td class="docs"><div class="pilwrap"><a href="#section-7" class="pilcrow">¶</a></div><p><a href="http://www.senchalabs.org/connect/middleware-bodyParser.html">Body parser middleware</a> parses JSON or XML bodies into <code>req.body</code> object</p>
</td><td class="code"><div class="highlight"><pre><span class="nx">app</span><span class="p">.</span><span class="nx">use</span> <span class="nx">express</span><span class="p">.</span><span class="nx">bodyParser</span><span class="p">()</span></pre></div></td></tr><tr id="section-8"><td class="docs"><div class="pilwrap"><a href="#section-8" class="pilcrow">¶</a></div><h3>View initialization</h3>
<p>Add Connect Assets.</p>
</td><td class="code"><div class="highlight"><pre><span class="nx">app</span><span class="p">.</span><span class="nx">use</span> <span class="nx">assets</span><span class="p">()</span></pre></div></td></tr><tr id="section-9"><td class="docs"><div class="pilwrap"><a href="#section-9" class="pilcrow">¶</a></div><p>Set the public folder as static assets.</p>
</td><td class="code"><div class="highlight"><pre><span class="nx">app</span><span class="p">.</span><span class="nx">use</span> <span class="nx">express</span><span class="p">.</span><span class="nx">static</span><span class="p">(</span><span class="nx">process</span><span class="p">.</span><span class="nx">cwd</span><span class="p">()</span> <span class="o">+</span> <span class="s">'/public'</span><span class="p">)</span>
</pre></div></td></tr><tr id="section-10"><td class="docs"><div class="pilwrap"><a href="#section-10" class="pilcrow">¶</a></div><p>Set View Engine.</p>
</td><td class="code"><div class="highlight"><pre><span class="nx">app</span><span class="p">.</span><span class="nx">set</span> <span class="s">'view engine'</span><span class="p">,</span> <span class="s">'jade'</span></pre></div></td></tr><tr id="section-11"><td class="docs"><div class="pilwrap"><a href="#section-11" class="pilcrow">¶</a></div><h3>Finalization</h3>
<p>Export application object</p>
</td><td class="code"><div class="highlight"><pre><span class="nv">module.exports = </span><span class="nx">app</span>
</pre></div></td></tr></tbody></table><div id="generated">generated Sun Dec 23 2012 16:04:40 GMT-0800 (PST) </div></div></body></html>