Constructor
new JsonDB(rootPath)
- Description:
Creates or opens a JSON-DB database at the given root directory.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
rootPath |
String | Root of the JsonDB file hierarchy. The path must be a path within CompleteFTP's virtual file-system (e.g. /databases). |
Methods
appendText(filePath, text)
- Description:
Append text to a file at the given location (relative to the JSON-DB root).
- Source:
Parameters:
Name | Type | Description |
---|---|---|
filePath |
String | Path of the file to append the text to. |
text |
String | Text to append. |
dereference(object) → {Object}
- Description:
Resolves reference properties to the objects that they reference. In this method, the JsonDB engine will go through all properties of the given object looking for references, i.e. string properties whose names end with
_ref
. For each one that it finds it will read the object with that reference from the database and add a property to the given object whose name is the same as the reference property, but with the_ref
suffix removed. The original object is not modified.For example, if a database contains one object at
/companies/MyCompany
as follows:{ "name": "MyCompany", "number": 123456 }
and another as
/people/JohnSmith
as follows:{ "firstName": "John", "lastName": "Smith", "company_ref": "/companies/MyCompany" }
then if
dereference
is called on/people/JohnSmith
then it will return:{ "firstName": "John", "lastName": "Smith", "company": { "name": "MyCompany", "number": 123456 } }
- Source:
Parameters:
Name | Type | Description |
---|---|---|
object |
Object | Object to be dereferenced. This object is not modified. |
Returns:
Object with all reference properties dereferenced.
- Type
- Object
list(pattern, includeFoldersopt) → {Array.<String>}
- Description:
Returns an array of references to all JSON files matching the given file-path pattern. This method only lists files, so the pattern must not reference fields inside objects. Wildcards (i.e. * or ?) may be placed in any element of the file-path.
- Source:
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
pattern |
String | File-path pattern optionally containing wildcards. |
|
includeFolders |
Boolean |
<optional> |
Folders are included in the list if |
Returns:
Array containing all matches.
- Type
- Array.<String>
query(pattern, comparer, value, type, evaluatoropt, callbackopt) → {Array.<String>}
- Description:
A JSON-DB may be queried using an object-path containing wild-cards and a comparison. For example, a JSON-DB has a directory called
products
that contains a set of product objects stored in JSON files whose names are the product IDs, and those objects have a property calledcolour
. To query for a certain colour, the pattern would beproducts/*.colour
. If we want to find all the green objects then we'd call the query method as follows:myDb.query('products/*.colour', '=', 'green', 'string')
.The result may be obtained via the callback or the return value.
- Source:
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
pattern |
String | Wildcard object-path. |
|
comparer |
String | Comparison operator to use: |
|
value |
Object | Value to compare with. Normally this is a single value, but if the operator is
|
|
type |
String | Type being queried for: |
|
evaluator |
function |
<optional> |
Evaluation function. If this is defined then the value returned from
the function is matched. The referenced object is passed as an argument to the evaluator function.
The JSS API is not available and cannot be used inside the evaluator function.
E.g. |
callback |
function |
<optional> |
Callback function to call for each match found. |
Returns:
Array containing all matching object references.
- Type
- Array.<String>
read(objectPath, fullResultopt) → {Object}
- Description:
Reads the object at the given path from the database. The path may specify a directory of JSON files, a specific JSON file, or an property within the object defined in a JSON file. For example, the path 'a/b.c' will reference the property called 'c' within the file with the path 'a/b.json'.
- Source:
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
objectPath |
String | Path of the object. |
|
fullResult |
Boolean |
<optional> |
Should a full result object be returned, or just the object that was read? Defaults to false. |
Returns:
The object returned depends on the 'fullResult' argument. If fullresult is false then the object at the path will be returned or an exception will be thrown if no object is found. If fullResult is true then an object with the following properties will be returned: 'target' the object at the path or null if not found; 'containers' an array of objects above the target object in the object-path; 'path' the object path; 'error' the error that occurred (if any).
- Type
- Object
readBase64(filePath) → {String}
- Description:
Reads the binary file at the given location and returns the content as a base-64 encoded string.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
filePath |
String | Path of the file to read. |
Returns:
Content of file as base-64
- Type
- String
readText(filePath) → {String}
- Description:
Reads the text file at the given location and returns the content as a string.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
filePath |
String | Path of the file to read. |
Returns:
Content of file
- Type
- String
remove(objectPath)
Parameters:
Name | Type | Description |
---|---|---|
objectPath |
String | Path of the object. |
update(objectPath, callback)
- Description:
Updates an object that already exists in the database using a callback method. The callback function takes a single argument, which is the object that was read from the database. This object may be modified within the callback. The file containing the object will be written back to the database after the callback function returns.
- Source:
Parameters:
Name | Type | Description |
---|---|---|
objectPath |
String | Path of object to be updated. This may specify a JSON file or an object within a file. |
callback |
function | Callback function that is called for the object. |
write(filePath, object)
Parameters:
Name | Type | Description |
---|---|---|
filePath |
String | Path of the file to be written. Note that this path must only specify the file and not any object within a file. |
object |
Object | Object to be written. |
writeBase64(filePath, base64)
- Description:
Writes a binary file at the given location (relative to the JSON-DB root).
- Source:
Parameters:
Name | Type | Description |
---|---|---|
filePath |
String | Path of the file to write the binary data to. |
base64 |
String | Base-64 encoded binary data to write. |
writeText(filePath, text)
- Description:
Writes a text file at the given location (relative to the JSON-DB root).
- Source:
Parameters:
Name | Type | Description |
---|---|---|
filePath |
String | Path of the file to write the text to. |
text |
String | Text to write. |