connect-form
Version:
urlencoded / multipart form parsing middleware for Connect
212 lines (199 loc) • 7.45 kB
HTML
<html>
<head>
<title>Connect</title>
<meta http-equiv="content-type" value="text/html; charset=utf-8">
<style type="text/css">
body {
font: 13px "Helvetica Neue", "Lucida Grande", "Arial";
text-align: center;
color: #555;
-webkit-text-stroke: 1px rgba(255, 255, 255, 0.1);
}
h1, h2, h3 {
margin: 0;
font-size: 22px;
font-weight: normal;
color: #343434;
}
h2#Connect {
margin-bottom: 25px;
font-size: 60px;
font-weight: bold;
}
h2#Connect + p {
display: none;
}
h3 {
margin: 35px 0;
padding-left: 10px;
font-size: 16px;
border-left: 15px solid #eee;
}
h2 {
margin-top: 35px;
text-shadow: 1px 2px 2px #ddd;
}
ul {
margin: 10px 35px;
padding: 0;
}
ul li .path {
padding-left: 5px;
font-weight: bold;
}
ul li .line {
padding-right: 5px;
font-style: italic;
}
ul li:first-child .path {
padding-left: 0;
}
p {
line-height: 1.5;
}
p code {
padding: 2px 4px;
border: 1px solid #ddd;
}
p em, li em {
font-weight: bold;
}
pre {
margin: 25px 0 25px 15px;
padding: 15px;
border: 1px solid #ddd;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-webkit-box-shadow: 1px 1px 6px #ddd;
-moz-box-shadow: 1px 1px 6px #ddd;
}
table {
margin-bottom: 35px;
width: 100%;
border-collapse: collapse;
}
table td {
padding: 5px 10px;
font-size: 14px;
}
table tr {
border-bottom: 1px solid #fff;
}
table tr:last-child {
border-bottom: none;
}
table td:first-child {
width: 150px;
color: #343434;
}
#wrapper {
margin: 50px auto;
width: 750px;
text-align: left;
}
#menu {
position: fixed;
top: 15px;
right: 15px;
margin: 0;
padding: 0;
list-style: none;
text-align: right;
}
#menu li.title {
padding: 20px 0 5px 0;
font-size: 12px;
}
code.js { color: #111; }
code.js .comment { color: #999; }
code.js .string { color: #cc0000; }
code.js .number { color: #0000ee; }
code.js .keyword { color: #000; font-weight: bold; }
a {
text-decoration: none;
color: #000;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<div id="wrapper">
<ul id="menu">
<li class="title">API</li>
<li><a href="api.html">extended api docs</a></li>
<li class="title">Middleware</li>
<li><a href="lint.html">lint</a></li>
<li><a href="flash.html">flash</a></li>
<li><a href="logger.html">logger</a></li>
<li><a href="format.html">format</a></li>
<li><a href="router.html">router</a></li>
<li><a href="jsonrpc.html">jsonrpc</a></li>
<li><a href="session.html">session</a></li>
<li><a href="compiler.html">compiler</a></li>
<li><a href="redirect.html">redirect</a></li>
<li><a href="errorHandler.html">errorHandler</a></li>
<li><a href="bodyDecoder.html">bodyDecoder</a></li>
<li><a href="responseTime.html">responseTime</a></li>
<li><a href="cookieDecoder.html">cookieDecoder</a></li>
<li><a href="conditionalGet.html">conditionalGet</a></li>
<li><a href="methodOverride.html">methodOverride</a></li>
<li><a href="staticProvider.html">staticProvider</a></li>
</ul><div class='mp'>
<h2 id="Rest">Rest</h2>
<p>The <em>router</em> middleware provides a routing API similar to that of Sinatra and Express.</p>
<pre><code class="js"><span class="keyword">function</span> <span class="variable">user</span>(<span class="variable">app</span>) {
<span class="variable">app</span>.<span class="variable">get</span>(<span class="string">'/users/(all.:format?)?'</span>, <span class="keyword">function</span>(<span class="variable">req</span>, <span class="variable">res</span>){
<span class="comment">// populates req.format</span>
<span class="comment">// ex:</span>
<span class="comment">// GET /users</span>
<span class="comment">// GET /users/all</span>
<span class="comment">// GET /users/all.json</span>
<span class="comment">// GET /users/all.xml</span>
});
<span class="variable">app</span>.<span class="variable">get</span>(<span class="string">'/users/:id.:format?'</span>: <span class="keyword">function</span>(<span class="variable">req</span>, <span class="variable">res</span>){
<span class="comment">// populates req.format</span>
<span class="comment">// populates params.id</span>
<span class="comment">// ex:</span>
<span class="comment">// GET /user/5</span>
<span class="comment">// GET /user/5.json</span>
<span class="comment">// GET /user/5.xml</span>
});
<span class="variable">app</span>.<span class="variable">put</span>(<span class="string">'/user/:id'</span>, <span class="keyword">function</span>(<span class="variable">req</span>, <span class="variable">res</span>, <span class="variable">params</span>){
<span class="comment">// populates params.id</span>
<span class="comment">// ex:</span>
<span class="comment">// PUT /user/2</span>
});
<span class="variable">app</span>.<span class="variable">del</span>(<span class="string">'/user/:id/file/*'</span>, <span class="keyword">function</span>(<span class="variable">req</span>, <span class="variable">res</span>, <span class="variable">params</span>){
<span class="comment">// populates params.id</span>
<span class="comment">// populates params.splat[0]</span>
<span class="comment">// ex:</span>
<span class="comment">// PUT /user/4/file/javascripts/jquery.js</span>
<span class="comment">// PUT /user/4/file/stylecss</span>
});
}
<span class="keyword">function</span> <span class="variable">commits</span>(<span class="variable">app</span>) {
<span class="comment">// RegExps too!</span>
<span class="variable">app</span>.<span class="variable">get</span>(<span class="regexp">/\/commit</span>\<span class="regexp">/(\w+)\.\.(\w+)\/</span>?/<span class="variable">i</span>, <span class="keyword">function</span>(<span class="variable">req</span>, <span class="variable">res</span>, <span class="variable">params</span>){
<span class="comment">// populates params.splat[0] with first capture group</span>
<span class="comment">// populates params.splat[1] with second capture group</span>
<span class="comment">// ex:</span>
<span class="comment">// GET /commit/kj4k..d3sdf</span>
});
}
<span class="variable">connect</span>.<span class="variable">createServer</span>(
<span class="variable">connect</span>.<span class="variable">router</span>(<span class="variable">user</span>),
<span class="variable">connect</span>.<span class="variable">router</span>(<span class="variable">commits</span>),
);
</code></pre>
<p>Those of you looking for <em>PUT</em> and <em>DELETE</em> support may want to take a look at the <em>methodOverride</em> middleware.</p>
<h3 id="See-Also">See Also</h3>
<ul>
<li>methodOverride</li>
</ul>
</div>
</div>
</body>
</html>