sgapps-server
Version:
SGApps Network Server
677 lines (630 loc) โข 125 kB
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Home - SGApps Server - Framework</title>
<meta name="description" content="SGApps Server for high performance results" />
<meta name="keywords" content="javascript, js, application-prototype, prototype" />
<meta name="keyword" content="javascript, js, application-prototype, prototype" />
<meta property="og:title" content="SGApps Server - Framework"/>
<meta property="og:type" content="website"/>
<meta property="og:image" content=""/>
<meta property="og:url" content="https://labs.sgapps.io/open-source/sgapps-server"/>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
<script src="scripts/nav.js" defer></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav class="wrap">
<input type="text" id="nav-search" placeholder="Search" />
<h2><a href="index.html">Home</a></h2><h2><a href="https://labs.sgapps.io/open-source/sgapps-server" target="_blank" class="menu-item" id="website_link" >Project Page ( Git Lab )</a></h2><h2><a href="http://gordienco.net/" target="_blank" class="menu-item" id="website_link" >About Me</a></h2><h2><a href="https://labs.sgapps.io/open-source/sgapps-server" target="_blank" class="menu-item" id="github_link" >GitHub</a></h2><h3>Classes</h3><ul><li><a href="AccessLogger.html">AccessLogger</a><ul class='methods'><li data-type='method' style='display: none;'><a href="AccessLogger.html#formattedDate">formattedDate</a></li><li data-type='method' style='display: none;'><a href="AccessLogger.html#getProtocol">getProtocol</a></li><li data-type='method' style='display: none;'><a href="AccessLogger.html#getReferer">getReferer</a></li><li data-type='method' style='display: none;'><a href="AccessLogger.html#getRemoteIp">getRemoteIp</a></li><li data-type='method' style='display: none;'><a href="AccessLogger.html#getSize">getSize</a></li><li data-type='method' style='display: none;'><a href="AccessLogger.html#getUsername">getUsername</a></li><li data-type='method' style='display: none;'><a href="AccessLogger.html#logRequest">logRequest</a></li></ul></li><li><a href="FaceboxTemplate.html">FaceboxTemplate</a><ul class='methods'><li data-type='method' style='display: none;'><a href="FaceboxTemplate.html#render">render</a></li><li data-type='method' style='display: none;'><a href="FaceboxTemplate.html#renderCode">renderCode</a></li><li data-type='method' style='display: none;'><a href="FaceboxTemplate.html#renderFile">renderFile</a></li></ul></li><li><a href="FSLibrary.html">FSLibrary</a></li><li><a href="LoggerBuilder.html">LoggerBuilder</a><ul class='methods'><li data-type='method' style='display: none;'><a href="LoggerBuilder.html#decorateGlobalLogger">decorateGlobalLogger</a></li><li data-type='method' style='display: none;'><a href="LoggerBuilder.html#error">error</a></li><li data-type='method' style='display: none;'><a href="LoggerBuilder.html#info">info</a></li><li data-type='method' style='display: none;'><a href="LoggerBuilder.html#log">log</a></li><li data-type='method' style='display: none;'><a href="LoggerBuilder.html#prettyCli">prettyCli</a></li><li data-type='method' style='display: none;'><a href="LoggerBuilder.html#prompt">prompt</a></li><li data-type='method' style='display: none;'><a href="LoggerBuilder.html#warn">warn</a></li></ul></li><li><a href="SGAppsServer.html">SGAppsServer</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServer.html#all">all</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#connect">connect</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#delete">delete</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#Email">Email</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#finalHandler">finalHandler</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#get">get</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#handle">handle</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#handleErrorRequest">handleErrorRequest</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#handlePostData">handlePostData</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#handleRequest">handleRequest</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#handleStaticRequest">handleStaticRequest</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#head">head</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#options">options</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#patch">patch</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#post">post</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#put">put</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#server">server</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#trace">trace</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.html#use">use</a></li></ul></li><li><a href="SGAppsServer.NodeJsMvc.html">NodeJsMvc</a></li><li class="level-hide"><a href="SGAppsServer.NodeJsMvc.Controller.html">Controller</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#actionExists">actionExists</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#addAction">addAction</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#addView">addView</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#getAction">getAction</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#getView">getView</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#removeAction">removeAction</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#removeView">removeView</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#render">render</a></li><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.html#viewExists">viewExists</a></li></ul></li><li class="level-hide"><a href="SGAppsServer.NodeJsMvc.Controller.Action.html">Action</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServer.NodeJsMvc.Controller.Action.html#run">run</a></li></ul></li><li><a href="SGAppsServerDecoratorsLibrary.html">SGAppsServerDecoratorsLibrary</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServerDecoratorsLibrary.html#.AccessLoggerDecorator">AccessLoggerDecorator</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerDecoratorsLibrary.html#.NodeJsMvcDecorator">NodeJsMvcDecorator</a></li></ul></li><li><a href="SGAppsServerDictionary.html">SGAppsServerDictionary</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServerDictionary.html#generatePathKey">generatePathKey</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerDictionary.html#push">push</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerDictionary.html#run">run</a></li></ul></li><li><a href="SGAppsServerEmail.html">SGAppsServerEmail</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServerEmail.html#.from">from</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerEmail.html#.isValidAddress">isValidAddress</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerEmail.html#.timeout">timeout</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerEmail.html#send">send</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerEmail.html#valid">valid</a></li></ul></li><li><a href="SGAppsServerRequest.html">SGAppsServerRequest</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServerRequest.html#_parseDeepFieldName">_parseDeepFieldName</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerRequest.html#getMountUpdatedUrl">getMountUpdatedUrl</a></li></ul></li><li><a href="SGAppsServerRequestCookie.html">SGAppsServerRequestCookie</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServerRequestCookie.html#get">get</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerRequestCookie.html#set">set</a></li></ul></li><li><a href="SGAppsServerRequestSession.html">SGAppsServerRequestSession</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServerRequestSession.html#destroy">destroy</a></li></ul></li><li><a href="SGAppsServerResponse.html">SGAppsServerResponse</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsServerResponse.html#pipeFile">pipeFile</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerResponse.html#pipeFileStatic">pipeFileStatic</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerResponse.html#redirect">redirect</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerResponse.html#send">send</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerResponse.html#sendError">sendError</a></li><li data-type='method' style='display: none;'><a href="SGAppsServerResponse.html#sendStatusCode">sendStatusCode</a></li></ul></li><li><a href="SGAppsServerShared.html">SGAppsServerShared</a></li><li><a href="SGAppsSessionManager.html">SGAppsSessionManager</a><ul class='methods'><li data-type='method' style='display: none;'><a href="SGAppsSessionManager.html#handleRequest">handleRequest</a></li><li data-type='method' style='display: none;'><a href="SGAppsSessionManager.html#removeExpiredSessions">removeExpiredSessions</a></li></ul></li><li><a href="TemplateManager.html">TemplateManager</a><ul class='methods'><li data-type='method' style='display: none;'><a href="TemplateManager.html#add">add</a></li><li data-type='method' style='display: none;'><a href="TemplateManager.html#addList">addList</a></li><li data-type='method' style='display: none;'><a href="TemplateManager.html#get">get</a></li><li data-type='method' style='display: none;'><a href="TemplateManager.html#remove">remove</a></li><li data-type='method' style='display: none;'><a href="TemplateManager.html#render">render</a></li><li data-type='method' style='display: none;'><a href="TemplateManager.html#templateExists">templateExists</a></li></ul></li><li><a href="TemplateManagerViewer.html">TemplateManagerViewer</a><ul class='methods'><li data-type='method' style='display: none;'><a href="TemplateManagerViewer.html#render">render</a></li><li data-type='method' style='display: none;'><a href="TemplateManagerViewer.html#renderCode">renderCode</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#LoggerBuilderPrompt">LoggerBuilderPrompt</a></li><li><a href="global.html#MountUpdatedURL">MountUpdatedURL</a></li><li><a href="global.html#RequestHandler">RequestHandler</a></li><li><a href="global.html#RequestPathStructure">RequestPathStructure</a></li><li><a href="global.html#RequestPathStructureMap">RequestPathStructureMap</a></li><li><a href="global.html#RequestSessionDecorator">RequestSessionDecorator</a></li><li><a href="global.html#ResourcesExtensions">ResourcesExtensions</a></li><li><a href="global.html#routeMatch">routeMatch</a></li><li><a href="global.html#SGAppsServerDecorator">SGAppsServerDecorator</a></li><li><a href="global.html#SGAppsServerDictionaryRunCallBack">SGAppsServerDictionaryRunCallBack</a></li><li><a href="global.html#SGAppsServerErrorCallBack">SGAppsServerErrorCallBack</a></li><li><a href="global.html#SGAppsServerErrorOnlyCallback">SGAppsServerErrorOnlyCallback</a></li><li><a href="global.html#SGAppsServerHandlerPostData">SGAppsServerHandlerPostData</a></li><li><a href="global.html#SGAppsServerOptions">SGAppsServerOptions</a></li><li><a href="global.html#SGAppsServerRequestFile">SGAppsServerRequestFile</a></li><li><a href="global.html#SGAppsServerRequestPostDataItem">SGAppsServerRequestPostDataItem</a></li><li><a href="global.html#SGAppsServerRequestSessionCache">SGAppsServerRequestSessionCache</a></li><li><a href="global.html#SGAppsSessionManagerOptions">SGAppsSessionManagerOptions</a></li><li><a href="global.html#TemplateManagerRenderOptions">TemplateManagerRenderOptions</a></li><li><a href="global.html#TemplateManagerTemplate">TemplateManagerTemplate</a></li></ul>
</nav>
<div id="main">
<section class="package">
<h3> </h3>
</section>
<section class="readme usertext">
<article><h1>SGApps Server - very fast NodeJS WebServer</h1>
<p><a href="https://labs.sgapps.io/open-source/sgapps-server/-/commits/master"><img src="https://labs.sgapps.io/open-source/sgapps-server/badges/master/pipeline.svg" alt="pipeline status"></a>
<a href="https://labs.sgapps.io/open-source/sgapps-server/-/blob/master/LICENSE"><img src="https://img.shields.io/badge/License-CC--BY--NC--4.0-crimson" alt="License ยป Creative Commons Attribution-NonCommercial 4.0 / or Granted by SGApps Labs"></a>
<a href="https://labs.sgapps.io/open-source/sgapps-server/"><img src="https://img.shields.io/badge/Repository-GitLab-blue?logo=gitlab" alt="Repository - GitLab"></a>
<a href="http://open-source.gordienco.net/sgapps-server/"><img src="https://img.shields.io/badge/Documentation-Api-blue?logo=html5" alt="Documentation"></a>
<a href="https://www.linkedin.com/in/sergiu-gordienco/"><img src="https://img.shields.io/badge/author-Sergiu_Gordienco-blue?logo=linkedin" alt="Sergiu Gordienco"></a>
<a href="mailto:sergiu.gordienco@gmail.com"><img src="https://img.shields.io/badge/email-sergiu.gordienco@gmail.com-blue?logo=email" alt="email sergiu.gordienco@gmail.com"></a></p>
<p><a href="https://www.npmjs.com/package/sgapps-server"><img src="https://img.shields.io/npm/v/sgapps-server" alt="npm"></a>
<a href="https://github.com/sgappsio/sgapps-server"><img src="https://img.shields.io/github/package-json/v/sgappsio/sgapps-server/master" alt="GitHub package.json version (branch)"></a>
<a href="https://github.com/sgappsio/sgapps-server/issues"><img src="https://img.shields.io/github/issues/sgappsio/sgapps-server" alt="GitHub issues"></a>
<a href="https://github.com/sgappsio/sgapps-server/pulls"><img src="https://img.shields.io/github/issues-pr/sgappsio/sgapps-server" alt="GitHub pull requests"></a></p>
<p>A network solution for web applications.</p>
<blockquote>
<p>Since this application is fully compatible with nodejs-mvc, I decided to replace nodejs-mvc with this new approach.
SGApps Server is completely new solution, that will be improved continuously thats why I will work on this project instead of nodejs-mvc</p>
<p>by <em>Sergiu Gordienco < sergiu.gordienco@sgapps.io ></em></p>
</blockquote>
<h1>Features</h1>
<ul>
<li>๐ Much Faster with common used Interface</li>
<li>๐ป Pretty Logger Integrated</li>
<li>๐๏ธ AccessLogs ( Combined )
<ul>
<li>๐ GoAccess Statistics Support ( v1.5.6 )</li>
<li>๐ AWSTats Statistics Support</li>
</ul>
</li>
<li>๐ TypeScript Typings ( Intellisense Support )</li>
<li>๐ support with MVC Framework</li>
</ul>
<h2>Authors</h2>
<ul>
<li>Gordienco Sergiu < sergiu.gordienco@sgapps.io ></li>
</ul>
<h2>License</h2>
<p>the license is <a href="./LICENSE">Apache-2.0</a>, so one of the requirements is to include reference to this project</p>
<h2>Samples</h2>
<h3>Simple Integration ( Similar to ExpressJS )</h3>
<pre class="prettyprint source lang-javascript"><code>const { SGAppsServer } = require('sgapps-server');
const app = new SGAppsServer();
app.get('/', function (request, response) {
response.send('hello world')
});
app.server().listen(8080, () => {
app.logger.log('Server is running on port 8080');
});
</code></pre>
<h3>Example of Integration with SessionSupport ๐ฆ</h3>
<pre class="prettyprint source lang-javascript"><code>// ========================================
// Start your ๐ Web-Server app Extended
// ========================================
const { SGAppsServer } = require('sgapps-server');
const app = new SGAppsServer();
app.get('/', function (request, response) {
response.send('hello world session#' + request.session.id);
})
app.whenReady.then(() => {
app.SessionManager.cookie = 'ssid';
app.SessionManager.SESSION_LIFE = 120; // seconds
app.server().listen(8080, () => {
app.logger.log('Server is running on port 8080');
});
}, app.logger.error);
</code></pre>
<h3>Example of Integration with AccessLogs for AWStats or GoAccess</h3>
<pre class="prettyprint source lang-javascript"><code>const { SGAppsServer } = require('sgapps-server');
const app = new SGAppsServer({
decorators: [
require('sgapps-server/decorators/access-logger')
]
});
app.AccessLoggerPaths['default'] = {
isEnabled: true,
path: configuration.database.filesystem.logs + 'default/{year}/{month}/data-{worker-id}.log'
};
app.whenReady.then(() => {
app.server().listen(8080, () => {
app.logger.log('Server is running on port 8080');
});
}, app.logger.error);
</code></pre>
<h3>Example Advanced of Integration with AccessLogs for AWStats or GoAccess</h3>
<pre class="prettyprint source lang-javascript"><code>const { SGAppsServer } = require('sgapps-server');
const app = new SGAppsServer({
decorators: [
require('sgapps-server/decorators/access-logger')
]
});
app.AccessLoggerPaths['default'] = {
isEnabled: true,
// modify the row
waitAllHandlers: true,
path: configuration.database.filesystem.logs + 'default/{year}/{month}/data-{worker-id}.log',
handle: function (data) {
// used for updating of filtering data
console.info("LOGGER Data", data);
return data.match(/\.txt\"/) ? null : data;
}
};
app.get(/^\/api\//, function () {
// log all request from api path into separate file
request.AccessLoggerPaths['api'] = {
isEnabled: true,
path: 'api/access.log'
}
})
app.whenReady.then(() => {
app.server().listen(8080, () => {
app.logger.log('Server is running on port 8080');
});
}, app.logger.error);
</code></pre>
<h2>Full API documentation can be found on <a href="http://open-source.gordienco.net/sgapps-server/"><img src="https://img.shields.io/badge/Documentation-Api-blue?logo=html5" alt="Documentation"></a></h2>
<h2>API</h2>
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
<h4>Table of Contents</h4>
<ul>
<li><a href="#sgappsserverrequestsession">SGAppsServerRequestSession</a>
<ul>
<li><a href="#_created">_created</a></li>
<li><a href="#_ip">_ip</a></li>
<li><a href="#_confirmed">_confirmed</a></li>
<li><a href="#_id">_id</a></li>
<li><a href="#_options">_options</a></li>
<li><a href="#data">data</a></li>
<li><a href="#destroy">destroy</a></li>
</ul>
</li>
<li><a href="#templatemanager">TemplateManager</a>
<ul>
<li><a href="#_options-1">_options</a></li>
<li><a href="#_viewer">_viewer</a></li>
<li><a href="#_env">_env</a></li>
<li><a href="#templateexists">templateExists</a></li>
<li><a href="#remove">remove</a></li>
<li><a href="#add">add</a></li>
<li><a href="#addlist">addList</a></li>
<li><a href="#get">get</a></li>
<li><a href="#render">render</a></li>
</ul>
</li>
<li><a href="#sgappsserverrequest">SGAppsServerRequest</a>
<ul>
<li><a href="#request">request</a></li>
<li><a href="#_postdatabuffer">_postDataBuffer</a></li>
<li><a href="#getmountupdatedurl">getMountUpdatedUrl</a></li>
<li><a href="#urlinfo">urlInfo</a></li>
<li><a href="#query">query</a></li>
<li><a href="#mountpath">mountPath</a></li>
<li><a href="#body">body</a></li>
<li><a href="#bodyitems">bodyItems</a></li>
<li><a href="#cookies">cookies</a></li>
<li><a href="#max_post_size">MAX_POST_SIZE</a></li>
<li><a href="#files">files</a></li>
<li><a href="#fileitems">fileItems</a></li>
<li><a href="#_destroy">_destroy</a></li>
<li><a href="#params">params</a></li>
<li><a href="#_flags">_flags</a></li>
<li><a href="#_parsedeepfieldname">_parseDeepFieldName</a></li>
<li><a href="#session">session</a></li>
<li><a href="#postdata">postData</a></li>
<li><a href="#requestparams">RequestParams</a></li>
</ul>
</li>
<li><a href="#routematch">routeMatch</a></li>
<li><a href="#sgappsserverresponse">SGAppsServerResponse</a>
<ul>
<li><a href="#response">response</a></li>
<li><a href="#pipefile">pipeFile</a></li>
<li><a href="#send">send</a></li>
<li><a href="#senderror">sendError</a></li>
<li><a href="#_destroy-1">_destroy</a></li>
<li><a href="#redirect">redirect</a></li>
<li><a href="#_flags-1">_flags</a></li>
<li><a href="#pipefilestaticcallback">pipeFileStaticCallback</a></li>
<li><a href="#pipefilestatic">pipeFileStatic</a></li>
<li><a href="#sendstatuscode">sendStatusCode</a></li>
</ul>
</li>
<li><a href="#templatemanagerrenderoptions">TemplateManagerRenderOptions</a></li>
<li><a href="#templatemanagerviewer">TemplateManagerViewer</a>
<ul>
<li><a href="#_facebox">_facebox</a></li>
<li><a href="#_debug">_debug</a></li>
<li><a href="#_env-1">_env</a></li>
<li><a href="#rendercode">renderCode</a></li>
<li><a href="#render-1">render</a></li>
</ul>
</li>
<li><a href="#templatemanagertemplate">TemplateManagerTemplate</a></li>
<li><a href="#sgappsserveremail">SGAppsServerEmail</a>
<ul>
<li><a href="#send-1">send</a></li>
<li><a href="#options">options</a></li>
<li><a href="#encodedbody">encodedBody</a></li>
<li><a href="#msg">msg</a></li>
<li><a href="#valid">valid</a></li>
<li><a href="#config">Config</a></li>
<li><a href="#from">from</a></li>
<li><a href="#isvalidaddress">isValidAddress</a></li>
<li><a href="#timeout">timeout</a></li>
<li><a href="#callback">Callback</a></li>
</ul>
</li>
<li><a href="#sgappssessionmanageroptions">SGAppsSessionManagerOptions</a></li>
<li><a href="#sgappsserverrequestsessioncache">SGAppsServerRequestSessionCache</a></li>
<li><a href="#mountupdatedurl">MountUpdatedURL</a></li>
<li><a href="#faceboxtemplate">FaceboxTemplate</a>
<ul>
<li><a href="#_debug-1">_debug</a></li>
<li><a href="#_env-2">_env</a></li>
<li><a href="#_cachedfiles">_cachedFiles</a></li>
<li><a href="#include_level">INCLUDE_LEVEL</a></li>
<li><a href="#render-2">render</a></li>
<li><a href="#renderfile">renderFile</a></li>
<li><a href="#rendercode-1">renderCode</a></li>
</ul>
</li>
<li><a href="#sgappsserverrequestcookie">SGAppsServerRequestCookie</a>
<ul>
<li><a href="#get-1">get</a></li>
<li><a href="#set">set</a></li>
</ul>
</li>
<li><a href="#sgappsserverdecoratorslibrary">SGAppsServerDecoratorsLibrary</a></li>
<li><a href="#sgappsservererrorcallback">SGAppsServerErrorCallBack</a></li>
<li><a href="#sgappsservererroronlycallback">SGAppsServerErrorOnlyCallback</a></li>
<li><a href="#fslibrary">FSLibrary</a></li>
<li><a href="#sgappsservershared">SGAppsServerShared</a></li>
<li><a href="#sgappsserverrequestfile">SGAppsServerRequestFile</a></li>
<li><a href="#sgappsserverrequestpostdataitem">SGAppsServerRequestPostDataItem</a></li>
<li><a href="#sgappsserverdecorator">SGAppsServerDecorator</a></li>
<li><a href="#sgappsserver">SGAppsServer</a>
<ul>
<li><a href="#cookiesmanager">CookiesManager</a></li>
<li><a href="#_server">_server</a></li>
<li><a href="#_decorators">_decorators</a></li>
<li><a href="#templatemanager-1">TemplateManager</a></li>
<li><a href="#_options-2">_options</a></li>
<li><a href="#status_codes">STATUS_CODES</a></li>
<li><a href="#shared">shared</a></li>
<li><a href="#logger">logger</a></li>
<li><a href="#email">Email</a></li>
<li><a href="#mountpath-1">mountPath</a></li>
<li><a href="#sessionmanager">SessionManager</a></li>
<li><a href="#_fs">_fs</a></li>
<li><a href="#_path">_path</a></li>
<li><a href="#extensions">EXTENSIONS</a></li>
<li><a href="#_requestlisteners">_requestListeners</a></li>
<li><a href="#max_post_size-1">MAX_POST_SIZE</a></li>
<li><a href="#whenready">whenReady</a></li>
<li><a href="#handlerequest">handleRequest</a></li>
<li><a href="#handleerrorrequest">handleErrorRequest</a></li>
<li><a href="#handlestaticrequest">handleStaticRequest</a></li>
<li><a href="#handle">handle</a></li>
<li><a href="#server">server</a></li>
<li><a href="#use">use</a></li>
<li><a href="#post">post</a></li>
<li><a href="#get-2">get</a></li>
<li><a href="#head">head</a></li>
<li><a href="#put">put</a></li>
<li><a href="#trace">trace</a></li>
<li><a href="#delete">delete</a></li>
<li><a href="#options-1">options</a></li>
<li><a href="#connect">connect</a></li>
<li><a href="#patch">patch</a></li>
<li><a href="#all">all</a></li>
<li><a href="#finalhandler">finalHandler</a></li>
<li><a href="#handlepostdata">handlePostData</a></li>
</ul>
</li>
<li><a href="#loggerbuilder">LoggerBuilder</a>
<ul>
<li><a href="#_format">_format</a></li>
<li><a href="#_debug-2">_debug</a></li>
<li><a href="#_headerformatters">_headerFormatters</a></li>
<li><a href="#prettycli">prettyCli</a></li>
<li><a href="#log">log</a></li>
<li><a href="#info">info</a></li>
<li><a href="#warn">warn</a></li>
<li><a href="#error">error</a></li>
<li><a href="#prompt">prompt</a></li>
<li><a href="#decorategloballogger">decorateGlobalLogger</a></li>
<li><a href="#headerformatterinfo">headerFormatterInfo</a></li>
<li><a href="#headerformatter">headerFormatter</a></li>
</ul>
</li>
<li><a href="#requestpathstructuremap">RequestPathStructureMap</a></li>
<li><a href="#sgappsserverdictionary">SGAppsServerDictionary</a>
<ul>
<li><a href="#_paths">_paths</a></li>
<li><a href="#_dictionary">_dictionary</a></li>
<li><a href="#generatepathkey">generatePathKey</a></li>
<li><a href="#push">push</a></li>
<li><a href="#run">run</a></li>
</ul>
</li>
<li><a href="#requestpathstructure">RequestPathStructure</a></li>
<li><a href="#requesthandler">RequestHandler</a></li>
<li><a href="#sgappsserveroptions">SGAppsServerOptions</a></li>
<li><a href="#sgappssessionmanager">SGAppsSessionManager</a>
<ul>
<li><a href="#_options-3">_options</a></li>
<li><a href="#_enabled">_enabled</a></li>
<li><a href="#_sessions">_sessions</a></li>
<li><a href="#removeexpiredsessions">removeExpiredSessions</a></li>
<li><a href="#handlerequest-1">handleRequest</a></li>
</ul>
</li>
<li><a href="#requestsessiondecorator">RequestSessionDecorator</a></li>
<li><a href="#sgappsserverdictionaryruncallback">SGAppsServerDictionaryRunCallBack</a></li>
<li><a href="#request-1">request</a></li>
<li><a href="#request-2">request</a></li>
<li><a href="#loggerbuilderprompt">LoggerBuilderPrompt</a></li>
<li><a href="#sgappsserverhandlerpostdata">SGAppsServerHandlerPostData</a></li>
</ul>
<h3><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L7">SGAppsServerRequestSession</a></h3>
<p>Type: <code>function (request, options)</code></p>
<ul>
<li><code>request</code> <strong><a href="#sgappsserverrequest">SGAppsServerRequest</a></strong></li>
<li><code>options</code> <strong><a href="#sgappssessionmanageroptions">SGAppsSessionManagerOptions</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L25">_created</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L33">_ip</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L57">_confirmed</a></h4>
<p>Session was received from previously saved cookie</p>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L64">_id</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L106">_options</a></h4>
<p>Type: <a href="#sgappssessionmanageroptions">SGAppsSessionManagerOptions</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L116">data</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L122">destroy</a></h4>
<p>Type: <code>function ()</code></p>
<hr>
<h3><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L9">TemplateManager</a></h3>
<p>Type: <code>function (options)</code></p>
<ul>
<li><code>options</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></strong>
<ul>
<li><code>options._fs</code> <strong><a href="#fslibrary">FSLibrary</a></strong></li>
</ul>
</li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L23">_options</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></p>
<ul>
<li><code>_fs</code> <strong><a href="#fslibrary">FSLibrary</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L31">_viewer</a></h4>
<p>Type: <a href="#templatemanagerviewer">TemplateManagerViewer</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L40">_env</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, any></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L64">templateExists</a></h4>
<p>Type: <code>function (templateName): boolean</code></p>
<ul>
<li><code>templateName</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L74">remove</a></h4>
<p>Type: <code>function (templateName)</code></p>
<ul>
<li><code>templateName</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L86">add</a></h4>
<p>Type: <code>function (templateName, filePath)</code></p>
<ul>
<li><code>templateName</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>filePath</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L98">addList</a></h4>
<p>Type: <code>function (templates)</code></p>
<ul>
<li><code>templates</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L114">get</a></h4>
<p>Type: <code>function (templateName): TemplateManagerTemplate</code></p>
<ul>
<li><code>templateName</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-template.js#L128">render</a></h4>
<p>Type: <code>function (response, templateName, vars)</code></p>
<ul>
<li><code>response</code> <strong><a href="#sgappsserverresponse">SGAppsServerResponse</a></strong></li>
<li><code>templateName</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>vars</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, any>?</strong></li>
</ul>
<hr>
<h3><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L9">SGAppsServerRequest</a></h3>
<p>Type: <code>function (request, server)</code></p>
<ul>
<li><code>request</code> <strong>IncomingMessage</strong></li>
<li><code>server</code> <strong><a href="#sgappsserver">SGAppsServer</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L15">request</a></h4>
<p>Type: IncomingMessage</p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-postdata.js#L26">_postDataBuffer</a></h4>
<p>post data buffer cache</p>
<p>Type: <a href="https://nodejs.org/api/buffer.html">Buffer</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-url.js#L26">getMountUpdatedUrl</a></h4>
<p>Type: <code>function (url): MountUpdatedURL</code></p>
<ul>
<li><code>url</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L34">urlInfo</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></p>
<ul>
<li><code>original</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>origin</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>domain</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong> full domain of url</li>
<li><code>domain_short</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong> domain without "www."</li>
<li><code>pathname</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong> url's pathname</li>
<li><code>reqQuery</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong> url's query from '?'</li>
<li><code>protocol</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong> url.split('://')[0]</li>
<li><code>url</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>url_p</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>isIp</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong> domain or Ip</li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L47">query</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L59">mountPath</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-postdata.js#L60">body</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-postdata.js#L72">bodyItems</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a><<a href="#sgappsserverrequestpostdataitem">SGAppsServerRequestPostDataItem</a>></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-cookie.js#L79">cookies</a></h4>
<p>Type: <a href="#sgappsserverrequestcookie">SGAppsServerRequestCookie</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L83">MAX_POST_SIZE</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a></p>
<p>Examples:</p>
<pre class="prettyprint source lang-javascript"><code>// changing max post size to 4Mb
request.MAX_POST_SIZE = 4 * 1024 * 1024;
</code></pre>
<pre class="prettyprint source lang-javascript"><code>// reset max post size to global value
request.MAX_POST_SIZE = -1;
</code></pre>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-postdata.js#L84">files</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a><<a href="#sgappsserverrequestfile">SGAppsServerRequestFile</a>>></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-postdata.js#L98">fileItems</a></h4>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a><<a href="#sgappsserverrequestfile">SGAppsServerRequestFile</a>></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L104">_destroy</a></h4>
<p>Array of functions to be called on response end</p>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function">function</a>></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L117">params</a></h4>
<p>Array of functions to be called on response end</p>
<p>Type: SGAppsServerRequest.RequestParams</p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L130">_flags</a></h4>
<p>Array of functions to be called on response end</p>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></p>
<ul>
<li><code>complete</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></strong> The message.complete property will be true if a complete HTTP message has been received and successfully parsed.</li>
<li><code>aborted</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></strong> The message.aborted property will be true if the request has been aborted.</li>
<li><code>closed</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></strong> Indicates that the underlying connection was closed.</li>
<li><code>_DEBUG_MAX_HANDLER_EXECUTION_TIME</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>?</strong> define a bigger request timeout</li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-postdata.js#L170">_parseDeepFieldName</a></h4>
<p>Automatically used procedure for parsing formData field name if option <code>server._options._REQUEST_FORM_PARAMS_DEEP_PARSE = true</code>. it's by default enabled but can be disabled when needed</p>
<p>Type: <code>function (container, fieldName, fieldData, options)</code></p>
<ul>
<li><code>container</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></strong></li>
<li><code>fieldName</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>fieldData</code> <strong>any</strong></li>
<li><code>options</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a>?</strong>
<ul>
<li><code>options.transform2ArrayOnDuplicate</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></strong> (optional, default <code>false</code>)</li>
</ul>
</li>
</ul>
<p>Examples:</p>
<pre class="prettyprint source lang-javascript"><code>paramsContainer = {};
request._parseDeepFieldName(paramsContainer, 'test[arr][data]', 2);
request._parseDeepFieldName(paramsContainer, 'test[arr][]', new Date());
request._parseDeepFieldName(paramsContainer, 'test[arr][]', 2);
request._parseDeepFieldName(paramsContainer, 'test[data]', 2);
// if _debug enabled warns will be emitted
// [Warn] [Request._parseDeepFieldName] Writing Array field "test[arr][]" into a object
// [Warn] [Request._parseDeepFieldName] Overwriting field "test[data]" value
console.log(paramsContainer)
{
"test": {
"arr": {
"1": "2021-02-12T21:23:01.913Z",
"2": 2,
"data": 2
},
"data": 2
}
}
</code></pre>
<pre class="prettyprint source lang-javascript"><code>paramsContainer = {};
request._parseDeepFieldName(paramsContainer, 'test[arr][]', new Date());
request._parseDeepFieldName(paramsContainer, 'test[arr][]', 2);
request._parseDeepFieldName(paramsContainer, 'test[arr][data]', 2);
request._parseDeepFieldName(paramsContainer, 'test[data]', 2);
// if _debug enabled warns will be emitted
// [Warn] [Request._parseDeepFieldName] Converting array to object due incorrect field "test[arr][data]" name
console.log(paramsContainer)
{
"test": {
"arr": {
"0": "2021-02-12T21:34:47.359Z",
"1": 2,
"data": 2
},
"data": 2
}
}
</code></pre>
<pre class="prettyprint source lang-javascript"><code>paramsContainer = {};
request._parseDeepFieldName(paramsContainer, 'test[arr][]', new Date());
request._parseDeepFieldName(paramsContainer, 'test[arr][]', 2);
request._parseDeepFieldName(paramsContainer, 'test[data]', 2);
console.log(paramsContainer)
{
"test": {
"arr": [
"2021-02-12T21:26:43.766Z",
2
],
"data": 2
}
}
</code></pre>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-session.js#L247">session</a></h4>
<p>Type: <a href="#sgappsserverrequestsession">SGAppsServerRequestSession</a></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/request-postdata.js#L358">postData</a></h4>
<p>request's post received data</p>
<p>Type: <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a><<a href="https://nodejs.org/api/buffer.html">Buffer</a>></p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/request.js#L107">RequestParams</a></h4>
<p>Type: (<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a><(<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a> | <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number">number</a>), <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>> | <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a><<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>>)</p>
<hr>
<h3><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/dictionary.js#L10">routeMatch</a></h3>
<p>Type: <code>function (route, url, strictRouting, _cache)</code></p>
<ul>
<li><code>route</code> <strong><a href="#requestpathstructure">RequestPathStructure</a></strong></li>
<li><code>url</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>strictRouting</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></strong></li>
<li><code>_cache</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object">object</a></strong></li>
</ul>
<hr>
<h3><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/response.js#L10">SGAppsServerResponse</a></h3>
<p>Type: <code>function (response, server)</code></p>
<ul>
<li><code>response</code> <strong>ServerResponse</strong></li>
<li><code>server</code> <strong><a href="#sgappsserver">SGAppsServer</a></strong></li>
</ul>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/response.js#L17">response</a></h4>
<p>Type: ServerResponse</p>
<hr>
<h4><a href="https://git@labs.sgapps.io/:open-source/sgapps-server/blob/c24d4c26aa587da9b6d27b6c0e5245eb3c205e1c/prototypes/server/extend/response-pipe-file.js#L20">pipeFile</a></h4>
<p>Type: <code>function (filePath, callback)</code></p>
<ul>
<li><code>filePath</code> <strong><a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></strong></li>
<li><code>callback</code> <strong><a href="#sgappsservererroronlycallback">SGAppsServerErrorOnlyCallback</a></strong> represents a <code>Funct