================== Installation Guide ================== The recommended way to get started using the Node.js driver is by using ``NPM`` (Node Package Manager) to install the dependency in your project. MongoDB Driver -------------- After you've created your project with ``npm init`` , you can install the MongoDB driver and its dependencies with the command: .. code-block:: sh npm install mongodb --save This will download the MongoDB driver and add a dependency entry in your ``package.json`` file. Troubleshooting --------------- The MongoDB driver depends on several other packages, including: * `bson `_ * `require_optional `_ * `safe-buffer `_ * `saslprep `_ Additionally, there are multiple optional dependencies that can be installed alongside the driver: * `bson-ext `_ * `kerberos `_ * `mongodb-client-encryption `_ * `snappy `_ These optional modules are all native C++ extensions. They are optional extensions and are not required for the driver to function. Most of these modules use the `prebuild `_ package to generate pre-built binaries for various operating systems and versions of node. This pre-built version will be downloaded during the ``postinstall`` stage, removing the need to build the native bindings on the system. bson-ext Module --------------- The ``bson-ext`` module is an alternative **BSON** parser that is written in C++. If you wish to use the ``bson-ext`` module you will need to add the ``bson-ext`` module to your module's dependencies. .. code-block:: sh npm install bson-ext --save kerberos Module --------------- If you need support for connecting to an LDAP environment, you will need to add the ``kerberos`` module to your module's dependencies. .. code-block:: sh npm install kerberos --save For most versions of node and most operating systems, ``kerberos`` will download a binary generated with ``prebuild``, removing the need to compile the native bindings. If your setup is not included in our pre-built binaries, or if you need to build kerberos without network access, please see `the kerberos README `_ for instructions on how to build the library manually.