# JavaScript API

## C++ Apertus Plugins

### NodeJsExtension

NodeJsExtension plugin is a C++ Node.js module, compiled with [nbind](https://github.com/charto/nbind) in order to call C++ code from JavaScript. It's located in *ApertusVR/plugins/jsAPI/nodeJsExtension/* folder. Header files are [nbind](https://github.com/charto/nbind)  bindings to ApertusVR's C++ API.

> [Nbind](https://github.com/charto/nbind) is a set of headers that make your C++11 library accessible from JavaScript.

{% hint style="info" %}
Note: [Nbind ](https://github.com/charto/nbind)is a great tool but it has many limitations. [SWIG ](http://www.swig.org/)is an alternative, however, it currently does not support the specific version of [V8](https://developers.google.com/v8/) which is used by ApertusVR.
{% endhint %}

### NodeJsPlugin

NodeJsPlugin starts an embedded [Node.js](https://nodejs.org/en/) instance which serves as the backend for ApertusVR. It uses [Express](https://expressjs.com/) framework that provides a robust set of features for web and mobile applications.

> [Express](https://expressjs.com/) provides a thin layer of fundamental web application features, without obscuring Node.js features that you know and love.

The backend application is located in *ApertusVR/plugins/jsAPI/nodeJsPlugin/js/* folder.

## JavaScript Apertus Plugins


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apertus.gitbook.io/vr/developers/api/javascript.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
