node-http-server
Version:
A very simple and fast http server for node, bash, and spawnable from C, Python etc. It is lightweight and great for embedded solutions as well as everyday development or public facing apps.
142 lines (110 loc) • 11.3 kB
HTML
<html>
<head>
<title>cluster-basicApp</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport"
content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link rel="stylesheet"
media="all"
href="../../assets/file_1.css"/>
<link rel="stylesheet"
media="all"
href="../../assets/file_5.css"/>
<link rel="stylesheet"
media="all"
href="../../assets/32px.png"/>
<link rel="stylesheet"
media="all"
href="../../assets/40px.png"/>
<link rel="stylesheet"
media="all"
href="../../assets/throbber.gif"/>
<link rel="stylesheet"
media="all"
href="../../assets/file_7.css"/>
<link rel="stylesheet"
media="all"
href="../../assets/file_8.css"/>
<script src="../../assets/file_2.js"
type="text/javascript"></script>
<script src="../../assets/file_3.js"
type="text/javascript"></script>
<script src="../../assets/file_4.js"
type="text/javascript"></script>
<script src="../../assets/file_6.js"
type="text/javascript"></script>
<script type="application/json" id="jsTreeJSON">
[{"id":"./example/basic/https-advancedApp.js","text":"https-advancedApp.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"https-advancedApp.js.html"},"state":{"selected":false}},{"id":".","text":".","icon":"jstree-folder","parent":"#","a_attr":{"href":"../.."},"state":{"opened":true}},{"id":"./example","text":"example","icon":"jstree-folder","parent":".","a_attr":{"href":".."},"state":{"opened":true}},{"id":"./example/readme.md","text":"readme.md","icon":"jstree-file","parent":"./example","a_attr":{"href":"../readme.md.html"},"state":{"selected":false}},{"id":"./example/advanced","text":"advanced","icon":"jstree-folder","parent":"./example","a_attr":{"href":"../advanced"},"state":{"opened":false}},{"id":"./example/advanced/basicTemplate.js","text":"basicTemplate.js","icon":"jstree-file","parent":"./example/advanced","a_attr":{"href":"../advanced/basicTemplate.js.html"},"state":{"selected":false}},{"id":"./example/advanced/https-ONLY-basicTemplate.js","text":"https-ONLY-basicTemplate.js","icon":"jstree-file","parent":"./example/advanced","a_attr":{"href":"../advanced/https-ONLY-basicTemplate.js.html"},"state":{"selected":false}},{"id":"./example/advanced/https-basicTemplate.js","text":"https-basicTemplate.js","icon":"jstree-file","parent":"./example/advanced","a_attr":{"href":"../advanced/https-basicTemplate.js.html"},"state":{"selected":false}},{"id":"./example/advanced/https-randomCSS.js","text":"https-randomCSS.js","icon":"jstree-file","parent":"./example/advanced","a_attr":{"href":"../advanced/https-randomCSS.js.html"},"state":{"selected":false}},{"id":"./example/advanced/https-requestBenchmark.js","text":"https-requestBenchmark.js","icon":"jstree-file","parent":"./example/advanced","a_attr":{"href":"../advanced/https-requestBenchmark.js.html"},"state":{"selected":false}},{"id":"./example/advanced/randomCSS.js","text":"randomCSS.js","icon":"jstree-file","parent":"./example/advanced","a_attr":{"href":"../advanced/randomCSS.js.html"},"state":{"selected":false}},{"id":"./example/advanced/requestBenchmark.js","text":"requestBenchmark.js","icon":"jstree-file","parent":"./example/advanced","a_attr":{"href":"../advanced/requestBenchmark.js.html"},"state":{"selected":false}},{"id":"./example/basic","text":"basic","icon":"jstree-folder","parent":"./example","a_attr":{"href":"."},"state":{"opened":true}},{"id":"./example/basic/advancedApp.js","text":"advancedApp.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"advancedApp.js.html"},"state":{"selected":false}},{"id":"./example/basic/basicApp.js","text":"basicApp.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"basicApp.js.html"},"state":{"selected":false}},{"id":"./example/basic/basicLogging.js","text":"basicLogging.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"basicLogging.js.html"},"state":{"selected":false}},{"id":"./example/basic/cluster-basicApp.js","text":"cluster-basicApp.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"cluster-basicApp.js.html"},"state":{"selected":true}},{"id":"./example/basic/https-ONLY-basicApp.js","text":"https-ONLY-basicApp.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"https-ONLY-basicApp.js.html"},"state":{"selected":false}},{"id":"./README.md","text":"README.md","icon":"jstree-file","parent":".","a_attr":{"href":"../../README.md.html"},"state":{"selected":false}},{"id":"./example/basic/https-basicApp.js","text":"https-basicApp.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"https-basicApp.js.html"},"state":{"selected":false}},{"id":"./example/basic/https-basicLogging.js","text":"https-basicLogging.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"https-basicLogging.js.html"},"state":{"selected":false}},{"id":"./example/basic/https-multipleDomains.js","text":"https-multipleDomains.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"https-multipleDomains.js.html"},"state":{"selected":false}},{"id":"./example/basic/https-verboseApp.js","text":"https-verboseApp.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"https-verboseApp.js.html"},"state":{"selected":false}},{"id":"./example/basic/multipleDomains.js","text":"multipleDomains.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"multipleDomains.js.html"},"state":{"selected":false}},{"id":"./example/basic/verboseApp.js","text":"verboseApp.js","icon":"jstree-file","parent":"./example/basic","a_attr":{"href":"verboseApp.js.html"},"state":{"selected":false}},{"id":"./example/proxy","text":"proxy","icon":"jstree-folder","parent":"./example","a_attr":{"href":"../proxy"},"state":{"opened":false}},{"id":"./example/proxy/basic.js","text":"basic.js","icon":"jstree-file","parent":"./example/proxy","a_attr":{"href":"../proxy/basic.js.html"},"state":{"selected":false}},{"id":"./example/proxy/https-and-http-basic.js","text":"https-and-http-basic.js","icon":"jstree-file","parent":"./example/proxy","a_attr":{"href":"../proxy/https-and-http-basic.js.html"},"state":{"selected":false}},{"id":"./example/proxy/https-and-http-google-proxy.js","text":"https-and-http-google-proxy.js","icon":"jstree-file","parent":"./example/proxy","a_attr":{"href":"../proxy/https-and-http-google-proxy.js.html"},"state":{"selected":false}},{"id":"./server","text":"server","icon":"jstree-folder","parent":".","a_attr":{"href":"../../server"},"state":{"opened":false}},{"id":"./server/Config.js","text":"Config.js","icon":"jstree-file","parent":"./server","a_attr":{"href":"../../server/Config.js.html"},"state":{"selected":false}},{"id":"./server/Server.js","text":"Server.js","icon":"jstree-file","parent":"./server","a_attr":{"href":"../../server/Server.js.html"},"state":{"selected":false}},{"id":"./bin","text":"bin","icon":"jstree-folder","parent":".","a_attr":{"href":"../../bin"},"state":{"opened":false}},{"id":"./bin/nhs.js","text":"nhs.js","icon":"jstree-file","parent":"./bin","a_attr":{"href":"../../bin/nhs.js.html"},"state":{"selected":false}},{"id":"./local-certs","text":"local-certs","icon":"jstree-folder","parent":".","a_attr":{"href":"../../local-certs"},"state":{"opened":false}},{"id":"./local-certs/readme.md","text":"readme.md","icon":"jstree-file","parent":"./local-certs","a_attr":{"href":"../../local-certs/readme.md.html"},"state":{"selected":false}}]
</script>
</head>
<body class="markdown-body">
<h1>
cluster-basicApp
</h1>
<div class="subHeading">
./example/basic/cluster-basicApp.js
</div>
<button type="button" class="navigatorToggle">☰ files...</button>
<nav class="navigationTree minimized">
<input type="text" id="jsTreeSearch" placeholder="search..."/>
<div></div>
</nav>
<section>
<ul class="sectionDetails ">
<li id="section-1">
<div class="annotation">
<p>import the <code>node-http-server</code> module
<code>const server=require(‘node-http-server’);</code></p>
</div><div class="content">
<div class="highlight"><pre><span class="hljs-keyword">const</span> server=<span class="hljs-built_in">require</span>(<span class="hljs-string">'../../server/Server.js'</span>);</pre></div>
</div>
</li>
<li id="section-2">
<div class="annotation">
<p>import cluster</p>
</div><div class="content">
<div class="highlight"><pre><span class="hljs-keyword">const</span> cluster = <span class="hljs-built_in">require</span>(<span class="hljs-string">'cluster'</span>);
<span class="hljs-keyword">const</span> numCPUs = <span class="hljs-built_in">require</span>(<span class="hljs-string">'os'</span>).cpus().length;
<span class="hljs-keyword">if</span> (cluster.isMaster) {
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">`Master <span class="hljs-subst">${process.pid}</span> is running`</span>);</pre></div>
</div>
</li>
<li id="section-3">
<div class="annotation">
<p> Fork node-http-server cluster workers.</p>
</div><div class="content">
<div class="highlight"><pre> <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i < numCPUs; i++) {
cluster.fork();
}
cluster.on(
<span class="hljs-string">'exit'</span>,
(worker, code, signal) => {
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">`worker <span class="hljs-subst">${worker.process.pid}</span> died`</span>);
}
);
} <span class="hljs-keyword">else</span> {
server.afterServe=<span class="hljs-function">(<span class="hljs-params">request</span>)=></span>{
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">`<span class="hljs-subst">${process.pid}</span> served <span class="hljs-subst">${request.uri.path}</span>`</span>);
}</pre></div>
</div>
</li>
<li id="section-4">
<div class="annotation">
<p>start server in clustered children</p>
</div><div class="content">
<div class="highlight"><pre> server.deploy(
{
<span class="hljs-attr">verbose</span>: <span class="hljs-literal">false</span>,
<span class="hljs-attr">port</span>: <span class="hljs-number">8000</span>,
<span class="hljs-attr">root</span>:__dirname+<span class="hljs-string">'/appRoot/'</span>
}
);
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">`Worker <span class="hljs-subst">${process.pid}</span> started listening on <span class="hljs-subst">${server.config.port}</span>`</span>);
}</pre></div>
</div>
</li>
</ul>
</section>
</body>
</html>