sgapps-server
Version:
SGApps Network Server
1,067 lines (726 loc) โข 89.5 kB
Markdown
# SGApps Server - very fast NodeJS WebServer
[](https://labs.sgapps.io/open-source/sgapps-server/-/commits/master)
[](https://labs.sgapps.io/open-source/sgapps-server/-/blob/master/LICENSE)
[](https://labs.sgapps.io/open-source/sgapps-server/)
[](http://open-source.gordienco.net/sgapps-server/)
[](https://www.linkedin.com/in/sergiu-gordienco/)
[](mailto:sergiu.gordienco@gmail.com)
[](https://www.npmjs.com/package/sgapps-server)
[](https://github.com/sgappsio/sgapps-server)
[](https://github.com/sgappsio/sgapps-server/issues)
[](https://github.com/sgappsio/sgapps-server/pulls)
A network solution for web applications.
> 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
>
> by _Sergiu Gordienco < sergiu.gordienco@sgapps.io >_
# Features
- ๐ Much Faster with common used Interface
- ๐ป Pretty Logger Integrated
- ๐๏ธ AccessLogs ( Combined )
- ๐ GoAccess Statistics Support ( v1.5.6 )
- ๐ AWSTats Statistics Support
- ๐ TypeScript Typings ( Intellisense Support )
- ๐ support with MVC Framework
## Authors
- Gordienco Sergiu < sergiu.gordienco@sgapps.io >
## License
the license is [Apache-2.0](./LICENSE), so one of the requirements is to include reference to this project
## Samples
### Simple Integration ( Similar to ExpressJS )
```javascript
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');
});
```
### Example of Integration with SessionSupport ๐ฆ
```javascript
// ========================================
// 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);
```
### Example of Integration with AccessLogs for AWStats or GoAccess
```javascript
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);
```
### Example Advanced of Integration with AccessLogs for AWStats or GoAccess
```javascript
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);
```
## Full API documentation can be found on [](http://open-source.gordienco.net/sgapps-server/)
## API
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
#### Table of Contents
- [SGAppsServerRequestSession](#sgappsserverrequestsession)
- [\_created](#_created)
- [\_ip](#_ip)
- [\_confirmed](#_confirmed)
- [\_id](#_id)
- [\_options](#_options)
- [data](#data)
- [destroy](#destroy)
- [TemplateManager](#templatemanager)
- [\_options](#_options-1)
- [\_viewer](#_viewer)
- [\_env](#_env)
- [templateExists](#templateexists)
- [remove](#remove)
- [add](#add)
- [addList](#addlist)
- [get](#get)
- [render](#render)
- [SGAppsServerRequest](#sgappsserverrequest)
- [request](#request)
- [\_postDataBuffer](#_postdatabuffer)
- [getMountUpdatedUrl](#getmountupdatedurl)
- [urlInfo](#urlinfo)
- [query](#query)
- [mountPath](#mountpath)
- [body](#body)
- [bodyItems](#bodyitems)
- [cookies](#cookies)
- [MAX_POST_SIZE](#max_post_size)
- [files](#files)
- [fileItems](#fileitems)
- [\_destroy](#_destroy)
- [params](#params)
- [\_flags](#_flags)
- [\_parseDeepFieldName](#_parsedeepfieldname)
- [session](#session)
- [postData](#postdata)
- [RequestParams](#requestparams)
- [routeMatch](#routematch)
- [SGAppsServerResponse](#sgappsserverresponse)
- [response](#response)
- [pipeFile](#pipefile)
- [send](#send)
- [sendError](#senderror)
- [\_destroy](#_destroy-1)
- [redirect](#redirect)
- [\_flags](#_flags-1)
- [pipeFileStaticCallback](#pipefilestaticcallback)
- [pipeFileStatic](#pipefilestatic)
- [sendStatusCode](#sendstatuscode)
- [TemplateManagerRenderOptions](#templatemanagerrenderoptions)
- [TemplateManagerViewer](#templatemanagerviewer)
- [\_facebox](#_facebox)
- [\_debug](#_debug)
- [\_env](#_env-1)
- [renderCode](#rendercode)
- [render](#render-1)
- [TemplateManagerTemplate](#templatemanagertemplate)
- [SGAppsServerEmail](#sgappsserveremail)
- [send](#send-1)
- [options](#options)
- [encodedBody](#encodedbody)
- [msg](#msg)
- [valid](#valid)
- [Config](#config)
- [from](#from)
- [isValidAddress](#isvalidaddress)
- [timeout](#timeout)
- [Callback](#callback)
- [SGAppsSessionManagerOptions](#sgappssessionmanageroptions)
- [SGAppsServerRequestSessionCache](#sgappsserverrequestsessioncache)
- [MountUpdatedURL](#mountupdatedurl)
- [FaceboxTemplate](#faceboxtemplate)
- [\_debug](#_debug-1)
- [\_env](#_env-2)
- [\_cachedFiles](#_cachedfiles)
- [INCLUDE_LEVEL](#include_level)
- [render](#render-2)
- [renderFile](#renderfile)
- [renderCode](#rendercode-1)
- [SGAppsServerRequestCookie](#sgappsserverrequestcookie)
- [get](#get-1)
- [set](#set)
- [SGAppsServerDecoratorsLibrary](#sgappsserverdecoratorslibrary)
- [SGAppsServerErrorCallBack](#sgappsservererrorcallback)
- [SGAppsServerErrorOnlyCallback](#sgappsservererroronlycallback)
- [FSLibrary](#fslibrary)
- [SGAppsServerShared](#sgappsservershared)
- [SGAppsServerRequestFile](#sgappsserverrequestfile)
- [SGAppsServerRequestPostDataItem](#sgappsserverrequestpostdataitem)
- [SGAppsServerDecorator](#sgappsserverdecorator)
- [SGAppsServer](#sgappsserver)
- [CookiesManager](#cookiesmanager)
- [\_server](#_server)
- [\_decorators](#_decorators)
- [TemplateManager](#templatemanager-1)
- [\_options](#_options-2)
- [STATUS_CODES](#status_codes)
- [shared](#shared)
- [logger](#logger)
- [Email](#email)
- [mountPath](#mountpath-1)
- [SessionManager](#sessionmanager)
- [\_fs](#_fs)
- [\_path](#_path)
- [EXTENSIONS](#extensions)
- [\_requestListeners](#_requestlisteners)
- [MAX_POST_SIZE](#max_post_size-1)
- [whenReady](#whenready)
- [handleRequest](#handlerequest)
- [handleErrorRequest](#handleerrorrequest)
- [handleStaticRequest](#handlestaticrequest)
- [handle](#handle)
- [server](#server)
- [use](#use)
- [post](#post)
- [get](#get-2)
- [head](#head)
- [put](#put)
- [trace](#trace)
- [delete](#delete)
- [options](#options-1)
- [connect](#connect)
- [patch](#patch)
- [all](#all)
- [finalHandler](#finalhandler)
- [handlePostData](#handlepostdata)
- [LoggerBuilder](#loggerbuilder)
- [\_format](#_format)
- [\_debug](#_debug-2)
- [\_headerFormatters](#_headerformatters)
- [prettyCli](#prettycli)
- [log](#log)
- [info](#info)
- [warn](#warn)
- [error](#error)
- [prompt](#prompt)
- [decorateGlobalLogger](#decorategloballogger)
- [headerFormatterInfo](#headerformatterinfo)
- [headerFormatter](#headerformatter)
- [RequestPathStructureMap](#requestpathstructuremap)
- [SGAppsServerDictionary](#sgappsserverdictionary)
- [\_paths](#_paths)
- [\_dictionary](#_dictionary)
- [generatePathKey](#generatepathkey)
- [push](#push)
- [run](#run)
- [RequestPathStructure](#requestpathstructure)
- [RequestHandler](#requesthandler)
- [SGAppsServerOptions](#sgappsserveroptions)
- [SGAppsSessionManager](#sgappssessionmanager)
- [\_options](#_options-3)
- [\_enabled](#_enabled)
- [\_sessions](#_sessions)
- [removeExpiredSessions](#removeexpiredsessions)
- [handleRequest](#handlerequest-1)
- [RequestSessionDecorator](#requestsessiondecorator)
- [SGAppsServerDictionaryRunCallBack](#sgappsserverdictionaryruncallback)
- [request](#request-1)
- [request](#request-2)
- [LoggerBuilderPrompt](#loggerbuilderprompt)
- [SGAppsServerHandlerPostData](#sgappsserverhandlerpostdata)
### [SGAppsServerRequestSession](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L8)
Type: `function (request, options)`
- `request` **[SGAppsServerRequest](#sgappsserverrequest)**
- `options` **[SGAppsSessionManagerOptions](#sgappssessionmanageroptions)**
* * *
#### [\_created](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L26)
Type: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)
* * *
#### [\_ip](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L34)
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
* * *
#### [\_confirmed](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L58)
Session was received from previously saved cookie
Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
* * *
#### [\_id](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L65)
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
* * *
#### [\_options](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L107)
Type: [SGAppsSessionManagerOptions](#sgappssessionmanageroptions)
* * *
#### [data](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L117)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
* * *
#### [destroy](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L123)
Type: `function ()`
* * *
### [TemplateManager](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L9)
Type: `function (options)`
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
- `options._fs` **[FSLibrary](#fslibrary)**
* * *
#### [\_options](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L23)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `_fs` **[FSLibrary](#fslibrary)**
* * *
#### [\_viewer](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L31)
Type: [TemplateManagerViewer](#templatemanagerviewer)
* * *
#### [\_env](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L40)
Type: [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), any>
* * *
#### [templateExists](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L64)
Type: `function (templateName): boolean`
- `templateName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* * *
#### [remove](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L74)
Type: `function (templateName)`
- `templateName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* * *
#### [add](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L86)
Type: `function (templateName, filePath)`
- `templateName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `filePath` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* * *
#### [addList](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L98)
Type: `function (templates)`
- `templates` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>**
* * *
#### [get](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L114)
Type: `function (templateName): TemplateManagerTemplate`
- `templateName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* * *
#### [render](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L128)
Type: `function (response, templateName, vars)`
- `response` **[SGAppsServerResponse](#sgappsserverresponse)**
- `templateName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `vars` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), any>?**
* * *
### [SGAppsServerRequest](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L9)
Type: `function (request, server)`
- `request` **IncomingMessage**
- `server` **[SGAppsServer](#sgappsserver)**
* * *
#### [request](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L15)
Type: IncomingMessage
* * *
#### [\_postDataBuffer](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-postdata.js#L26)
post data buffer cache
Type: [Buffer](https://nodejs.org/api/buffer.html)
* * *
#### [getMountUpdatedUrl](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-url.js#L26)
Type: `function (url): MountUpdatedURL`
- `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* * *
#### [urlInfo](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L34)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `original` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `origin` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `domain` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** full domain of url
- `domain_short` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** domain without "www."
- `pathname` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** url's pathname
- `reqQuery` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** url's query from '?'
- `protocol` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** url.split('://')[0]
- `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `url_p` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `isIp` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** domain or Ip
* * *
#### [query](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L47)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
* * *
#### [mountPath](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L59)
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
* * *
#### [body](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-postdata.js#L60)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
* * *
#### [bodyItems](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-postdata.js#L72)
Type: [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[SGAppsServerRequestPostDataItem](#sgappsserverrequestpostdataitem)>
* * *
#### [cookies](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-cookie.js#L79)
Type: [SGAppsServerRequestCookie](#sgappsserverrequestcookie)
* * *
#### [MAX_POST_SIZE](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L83)
Type: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)
Examples:
```javascript
// changing max post size to 4Mb
request.MAX_POST_SIZE = 4 * 1024 * 1024;
```
```javascript
// reset max post size to global value
request.MAX_POST_SIZE = -1;
```
* * *
#### [files](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-postdata.js#L84)
Type: [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[SGAppsServerRequestFile](#sgappsserverrequestfile)>>
* * *
#### [fileItems](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-postdata.js#L98)
Type: [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[SGAppsServerRequestFile](#sgappsserverrequestfile)>
* * *
#### [\_destroy](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L104)
Array of functions to be called on response end
Type: [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)>
* * *
#### [params](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L117)
Array of functions to be called on response end
Type: SGAppsServerRequest.RequestParams
* * *
#### [\_flags](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L130)
Array of functions to be called on response end
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `complete` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** The message.complete property will be true if a complete HTTP message has been received and successfully parsed.
- `aborted` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** The message.aborted property will be true if the request has been aborted.
- `closed` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Indicates that the underlying connection was closed.
- `_DEBUG_MAX_HANDLER_EXECUTION_TIME` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** define a bigger request timeout
* * *
#### [\_parseDeepFieldName](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-postdata.js#L170)
Automatically used procedure for parsing formData field name if option `server._options._REQUEST_FORM_PARAMS_DEEP_PARSE = true`. it's by default enabled but can be disabled when needed
Type: `function (container, fieldName, fieldData, options)`
- `container` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
- `fieldName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `fieldData` **any**
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
- `options.transform2ArrayOnDuplicate` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** (optional, default `false`)
Examples:
```javascript
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
}
}
```
```javascript
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
}
}
```
```javascript
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
}
}
```
* * *
#### [session](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L316)
Type: [SGAppsServerRequestSession](#sgappsserverrequestsession)
* * *
#### [postData](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-postdata.js#L358)
request's post received data
Type: [Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Buffer](https://nodejs.org/api/buffer.html)>
* * *
#### [RequestParams](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/request.js#L107)
Type: ([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)), [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)
* * *
### [routeMatch](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/dictionary.js#L10)
Type: `function (route, url, strictRouting, _cache)`
- `route` **[RequestPathStructure](#requestpathstructure)**
- `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `strictRouting` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
- `_cache` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
* * *
### [SGAppsServerResponse](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/response.js#L10)
Type: `function (response, server)`
- `response` **ServerResponse**
- `server` **[SGAppsServer](#sgappsserver)**
* * *
#### [response](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/response.js#L17)
Type: ServerResponse
* * *
#### [pipeFile](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-pipe-file.js#L20)
Type: `function (filePath, callback)`
- `filePath` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `callback` **[SGAppsServerErrorOnlyCallback](#sgappsservererroronlycallback)** represents a `Function(Error)`
* * *
#### [send](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-send.js#L22)
Type: `function (data, options)`
- `data` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Buffer](https://nodejs.org/api/buffer.html) \| [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<any>)**
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
- `options.statusCode` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** (optional, default `200`)
- `options.headers` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)>?**
* * *
#### [sendError](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-error.js#L25)
Type: `function (error, options)`
- `error` **[Error](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error)**
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
- `options.statusCode` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** (optional, default `500`)
* * *
#### [\_destroy](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/response.js#L25)
Array of functions to be called on response end
Type: [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)>
* * *
#### [redirect](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-redirect.js#L27)
if it returns `false` than the action was not possible
Type: `function (url, options)`
- `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
- `options.statusCode` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** (optional, default `302`)
- `options.headers` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)>?**
* * *
#### [\_flags](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/response.js#L36)
Array of functions to be called on response end
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `finished` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** will be true if response.end() has been called.
- `sent` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Is true if all data has been flushed to the underlying system, immediately before the 'finish' event is emitted.
- `closed` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Indicates that the the response is completed, or its underlying connection was terminated prematurely (before the response completion).
* * *
#### [pipeFileStaticCallback](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-pipe-file-static.js#L19)
Type: [Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)
- `error` **[Error](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error)**
* * *
#### [pipeFileStatic](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-pipe-file-static.js#L37)
Type: `function (filePath, fileName, callback, options)`
- `filePath` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `fileName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `callback` **SGAppsServerResponse.pipeFileStaticCallback**
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
- `options.timeout` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** (optional, default `0`)
- `options.filePath` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** originap path is autoIndex was applied
- `options.autoIndex` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>?** list of auto-index files, ex: ['index.html', 'index.htm', 'default.html']
* * *
#### [sendStatusCode](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-send.js#L90)
Type: `function (statusCode)`
- `statusCode` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
* * *
### [TemplateManagerRenderOptions](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/viewer.js#L3)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
* * *
### [TemplateManagerViewer](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/viewer.js#L13)
Type: `function (options)`
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
- `options._fs` **[FSLibrary](#fslibrary)**
* * *
#### [\_facebox](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/viewer.js#L19)
Type: [FaceboxTemplate](#faceboxtemplate)
* * *
#### [\_debug](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/viewer.js#L29)
Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
* * *
#### [\_env](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/viewer.js#L47)
Type: [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), any>
* * *
#### [renderCode](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/viewer.js#L70)
Type: `function (code, vars, virtualFilePath, callback)`
- `code` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `vars` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), any>**
- `virtualFilePath` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `callback` **[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)**
* * *
#### [render](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/viewer.js#L85)
Type: `function (response, view, vars)`
- `response` **[SGAppsServerResponse](#sgappsserverresponse)**
- `view` **[TemplateManagerTemplate](#templatemanagertemplate)**
- `vars` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), any>**
* * *
### [TemplateManagerTemplate](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/response-template.js#L10)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `code` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**
* * *
### [SGAppsServerEmail](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L44)
Type: `function (config)`
- `config` **SGAppsServerEmail.Config** optional configuration object
Example:
```javascript
Example:
var Email = require('path/to/email').Email
var myMsg = new Email(
{ from: 'me@example.com'
, to: 'you@example.com'
, subject: 'Knock knock...'
, body: "Who's there?"
})
myMsg.send(function(err){
...
})
```
* * *
#### [send](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L133)
Send email
Type: `function (callback)`
- `callback` **SGAppsServerEmail.Callback**
* * *
#### [options](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L133)
get message options
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `timeout` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
* * *
#### [encodedBody](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L133)
getter generate encoded body
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
* * *
#### [msg](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L133)
getter generate all email structure
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
* * *
#### [valid](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L133)
check if email is valid
Type: `function (callback)`
- `callback` **SGAppsServerEmail.Callback**
* * *
#### [Config](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L1)
Email : Sends email using the sendmail command.
Note: sendmail must be installed: see <http://www.sendmail.org/>
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `to` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** Email address(es) to which this msg will be sent
- `debug` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?**
- `from` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Email address from which this msg is sent. If not set defaults to the `exports.from` global setting.
- `replyTo` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Email address to which replies will be sent. If not
set defaults to `from`
- `cc` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)?** Email address(es) who receive a copy
- `bcc` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>)?** Email address(es) who receive a blind copy
- `subject` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The subject of the email
- `body` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The message of the email
- `bodyType` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Content type of body. Only valid option is
'html' (for now). Defaults to text/plain.
- `altText` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** If `bodyType` is set to 'html', this will be sent
as the alternative text.
- `timeout` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Duration in milliseconds to wait before killing the
process. If not set, defaults to `exports.timeout` global setting.
- `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Optional path to the sendmail executable.
* * *
#### [from](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L56)
Email address from which messages are sent. Used
when `from` was not set on a message.
Type: `function (email): string`
- `email` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* * *
#### [isValidAddress](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L67)
Type: `function (email): boolean`
- `email` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* * *
#### [timeout](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L80)
Duration in milliseconds to wait before
killing the process. Defaults to 3000. Used when `timeout` is not set
on a message.
Type: `function (milliseconds): number`
- `milliseconds` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
* * *
#### [Callback](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/email.js#L85)
Type: [Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)
- `err` **[Error](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error)**
* * *
### [SGAppsSessionManagerOptions](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L9)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `SESSION_LIFE` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?**
- `cookie` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**
* * *
### [SGAppsServerRequestSessionCache](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-session.js#L15)
Type: [object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
- `expire` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
- `data` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
* * *
### [MountUpdatedURL](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/request-url.js#L17)
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
* * *
### [FaceboxTemplate](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/facebox-templates.js#L26)
Type: `function (options)`
- `options` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
- `options._fs` **[FSLibrary](#fslibrary)**
* * *
#### [\_debug](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/facebox-templates.js#L32)
Type: [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
* * *
#### [\_env](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/facebox-templates.js#L47)
Type: [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), any>
* * *
#### [\_cachedFiles](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/facebox-templates.js#L64)
Type: [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>
* * *
#### [INCLUDE_LEVEL](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/facebox-templates.js#L84)
Type: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)
* * *
#### [render](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/facebox-templates.js#L94)
Type: `function (text, vars, env)`
- `text` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `vars` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), any>**
- `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), any>**
* * *
#### [renderFile](https://git@labs.sgapps.io/:open-source/sgapps-server/blob/6a7fe6c5443444e7c9de9cafd565ad431f7e1015/prototypes/server/extend/template-manager/facebox-templates.js#L232)
Type: `function (filePath, vars, callback)`
- `filePath` **[string](https