JavaScript Modules
ArangoDB uses a Node.js compatible module system. You can use the function
require()
in order to load a module or library. It returns the exported
variables and functions of the module.
The following global variables are available throughout ArangoDB and Foxx:
global
process
console
Buffer
__filename
__dirname
Node compatibility modules
ArangoDB supports a number of modules for compatibility with Node.js, including:
-
assert implements basic assertion and testing functions.
-
buffer implements a binary data type for JavaScript.
-
console is a well known logging facility to all the JavaScript developers. ArangoDB implements most of the Console API, with the exceptions of profile and count.
-
events implements an event emitter.
-
fs provides a file system API for the manipulation of paths, directories, files, links, and the construction of file streams. ArangoDB implements most Filesystem/A functions.
-
module provides direct access to the module system.
-
path implements functions dealing with filenames and paths.
-
punycode implements conversion functions for punycode encoding.
-
querystring provides utilities for dealing with query strings.
-
stream provides a streaming interface.
-
string_decoder implements logic for decoding buffers into strings.
-
url provides utilities for URL resolution and parsing.
-
util provides general utility functions like
format
andinspect
.
Additionally ArangoDB provides partial implementations for the following modules:
-
net
: onlyisIP
,isIPv4
andisIPv6
. -
process
: onlyenv
andcwd
; stubs forargv
,stdout.isTTY
,stdout.write
,nextTick
. -
timers
: stubs forsetImmediate
,setTimeout
,setInterval
,clearImmediate
,clearTimeout
,clearInterval
andref
. -
tty
: onlyisatty
(always returnsfalse
). -
vm
: onlyrunInThisContext
.
The following Node.js modules are not available at all:
child_process
cluster
constants
crypto
(but see@arangodb/crypto
below)dgram
dns
domain
http
(but see@arangodb/request
below)https
os
sys
tls
v8
zlib
ArangoDB Specific Modules
There are a large number of ArangoDB-specific modules using the @arangodb
namespace, mostly for internal use by ArangoDB itself. The following modules
noteworthy however and intended to be used by the user:
-
@arangodb provides direct access to the database and its collections.
-
@arangodb/analyzers provides an interface to manage ArangoSearch Analyzers.
-
AQL related modules:
-
@arangodb/aql/queries offers methods to track and kill AQL queries.
-
@arangodb/aql/cache allows to control the AQL query caching feature.
-
@arangodb/aql/explainer provides methods to debug, explain and profile AQL queries.
-
@arangodb/aql/functions provides an interface to (un-)register user-defined AQL functions.
-
-
@arangodb/crypto provides various cryptography functions including hashing algorithms.
-
@arangodb/foxx is the namespace providing the various building blocks of the Foxx microservice framework.
- @arangodb/locals is a helper module to use Foxx together with Webpack.
-
Graph related modules:
-
@arangodb/general-graph implements a graph management interface for named graphs.
-
@arangodb/smart-graph provides management features for SmartGraphs
-
@arangodb/graph-examples/example-graph.js can load example graphs (creates collections, populates them with documents and creates named graphs)
-
-
@arangodb/request provides the functionality for making synchronous HTTP/HTTPS requests.
-
@arangodb/tasks implements task management methods
-
@arangodb/users provides an interface for user management.