UNPKG

sgapps-server

Version:
677 lines (630 loc) โ€ข 125 kB
<!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 &lt; sergiu.gordienco@sgapps.io &gt;</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 &lt; sergiu.gordienco@sgapps.io &gt;</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(&quot;LOGGER Data&quot;, data); return data.match(/\.txt\&quot;/) ? 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>&lt;<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, any&gt;</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>&lt;<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>&gt;</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>&lt;<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>, any&gt;?</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 &quot;www.&quot;</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>&lt;<a href="#sgappsserverrequestpostdataitem">SGAppsServerRequestPostDataItem</a>&gt;</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>&lt;<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>&lt;<a href="#sgappsserverrequestfile">SGAppsServerRequestFile</a>&gt;&gt;</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>&lt;<a href="#sgappsserverrequestfile">SGAppsServerRequestFile</a>&gt;</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>&lt;<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function">function</a>&gt;</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 &quot;test[arr][]&quot; into a object // [Warn] [Request._parseDeepFieldName] Overwriting field &quot;test[data]&quot; value console.log(paramsContainer) { &quot;test&quot;: { &quot;arr&quot;: { &quot;1&quot;: &quot;2021-02-12T21:23:01.913Z&quot;, &quot;2&quot;: 2, &quot;data&quot;: 2 }, &quot;data&quot;: 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 &quot;test[arr][data]&quot; name console.log(paramsContainer) { &quot;test&quot;: { &quot;arr&quot;: { &quot;0&quot;: &quot;2021-02-12T21:34:47.359Z&quot;, &quot;1&quot;: 2, &quot;data&quot;: 2 }, &quot;data&quot;: 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) { &quot;test&quot;: { &quot;arr&quot;: [ &quot;2021-02-12T21:26:43.766Z&quot;, 2 ], &quot;data&quot;: 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>&lt;<a href="https://nodejs.org/api/buffer.html">Buffer</a>&gt;</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>&lt;(<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>&gt; | <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a>&lt;<a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String">string</a>&gt;)</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