You're viewing **Apigee Edge** documentation.  
[Go to the
**Apigee X** documentation](http://cloud.google.com/apigee/docs). info

> [!WARNING]
> **Private Cloud Deprecation Notice:**
>
> **Support for [Node.js](https://docs.apigee.com/api-platform/nodejs/overview-nodejs-apigee-edge) proxies
> and [secure vaults](https://docs.apigee.com/api-platform/nodejs/using-secure-store)**
>
> Since 2013, Apigee has supported the
> [use of Node.js proxies within Apigee
> Edge](https://www.programmableweb.com/news/apigee-api-platform-now-supports-node.js-allowing-developers-to-build-highly-customized-apis-and-apps/brief/2013/10/25) through the use of [Trireme](https://github.com/apigee/trireme), which enables you to run your Node.js code
> within Apigee Edge for Private Cloud and expose it as an API.
>
>
> Apigee recommends Private Cloud customers take the following steps:
>
> - Migrate data in secure vaults to [Encrypted Key Value Maps](https://docs.apigee.com/api-platform/cache/key-value-maps#aboutencrypted) (KVM) to access sensitive data from an API proxy.
> - Migrate Trireme (Node.js) based API proxies to a native Node.js environment outside of Apigee.
>
>
> See also [Apigee deprecations and retirements](https://docs.apigee.com/release/deprecated-features).

> [!WARNING]
> **Public Cloud Retired feature:** The traditional, Trireme-based
> Node.js support on Apigee Edge Cloud is retired and, by extension,
> [apigee-access](https://docs.apigee.com/api-platform/nodejs/using-apigee-access) is also
> retired because it is only used in Trireme-based Node.js applications deployed on Apigee Edge.
> Trireme-based Node.js was retired on October 10, 2019. See
> [Trireme-based Node.js End of Life](https://docs.apigee.com/release/notes/trireme-nodejs-eol).

The traditional Node.js support on Apigee Edge provides an embedded Node.js runtime environment that
is scoped to an Apigee organization and environment. Node.js applications deployed to this
environment can serve as the target for any API proxies that are deployed to that same
organization/environment.

![](https://docs.apigee.com/static/api-platform/images/nodejs-edge-overview.png)

The traditional Edge Node.js support relies internally on an open-source bridge application called
([Trireme](https://github.com/apigee/trireme)) and a JavaScript interpreter called
([Rhino](https://en.wikipedia.org/wiki/Rhino_(JavaScript_engine)))
that allow Node.js code to execute in the Edge Java runtime environment.

There are several limitations associated with this approach. For example:

- Only an older version of Node.js (0.10.32) is supported.
- There are subtle differences in behavior between the standard Node.js environment and the Trireme/Rhino environment.
- Debugging Node.js apps after they are deployed to Edge is difficult.

Node.js apps deployed to Hosted Targets do not depend on any Apigee-specific
Node.js run-time technology. Your Node.js app will run in Hosted Targets exactly as it runs
in your local development environment.

## Samples

> [!NOTE]
> **Sample:** You can download Node.js from the [samples repository](https://github.com/apigee/node-samples) on GitHub. proxy sample code. See also [Using the sample API proxies](https://docs.apigee.com/api-platform/samples/using-samples).

The Node.js repository contains a number of basic examples from deploying a simple Hello
World! server to an employee database API that leverages a cloud-based datastore.

## Performance tips

See [Node.js
Performance Tips: Socket Pooling](https://discuss.google.dev/t/node-js-performance-tips-socket-pooling/17495) in the Apigee Community.

## Next Steps

Now that you know a little about Node.js support in Apigee Edge, it's time to see Node.js on
Edge in action. In the next topic, [Getting started with Node.js on
Apigee Edge](https://docs.apigee.com/api-platform/nodejs/getting-started-nodejs-apigee-edge), we'll show you how to proxy a very simple "Hello World" Node.js app on Apigee
Edge using the management UI. Later, we'll show you how to deploy Node.js apps directly from your
development machine to Edge using the command-line interface.

## Limitations

Traditional Edge [Node.js support](https://docs.apigee.com/api-platform/nodejs/overview-nodejs-apigee-edge)
relies internally on an open-source bridge application ([Trireme](https://github.com/apigee/trireme))
and a JavaScript interpreter ([Rhino](https://en.wikipedia.org/wiki/Rhino_(JavaScript_engine)))
that allow Node.js code to execute in the Edge Java runtime environment.

There are several limitations associated with this approach. For example:

- Only an older version of Node.js (0.10.32) is supported.
- There are subtle differences in behavior between the standard Node.js environment and the Trireme/Rhino environment.
- Debugging Node.js apps after they are deployed to Edge is difficult.