I've been following the latest developments with server-side JavaScript - especially Node.js - and wondering if there is any possibility of using such an approach to develop a Google App Engine web application - either separately from or in combination with Python or Java?
-
2I would not be at all surprised to see Google provide a V8-based runtime for AppEngine, but I wouldn't think that Node.JS would run on it, as Robert notes in his answer below. Apples generally don't grow on orange trees. – Adam Crossland Oct 13 '10 at 20:46
5 Answers
node.js uses an event-loop model which is not really a good fit with the current App Engine design.
However, there are several projects that bring JavaScript to App Engine. Check out App Engine issue 35 to read about some of the solutions. The highlights are: Rhino, Rhino For Webapps, if you like Python check out AppengineJS. I have also heard that RingoJS might be worth looking into.

- 8,282
- 25
- 21
-
5Good answer, Robert. I would just add that AppEngine Issue #35 (http://code.google.com/p/googleappengine/issues/detail?id=35) is chock-a-block with lustful palpitations over and beseechments to Google to implement V8 runtine/Node.JS for AppEngine. Priority is 'Medium'. I don't know about Google, but where I work, a priority of Medium means, "You request is acknowledged and will be ignored." It bears noting that none of the comments on the issue address Robert's excellent point that there is an impedance mismatch between Node.js's event loop and AppEngine's request-orientation. – Adam Crossland Oct 13 '10 at 20:45
-
-
-
I think this answer needs to be updated, node.js on appengine is now supported via the custom runtimes. Google has released an npm package called gcloud that allows you to deploy your app to appengine and access appengine services like cloud storage and ndb from within your node app. https://cloud.google.com/solutions/nodejs/ http://googlecloudplatform.github.io/gcloud-node/#/ – Verdi Erel Ergün Nov 18 '14 at 21:40
Also you might want to check out ApeJS. A little framework I wrote similar to AppengineJS but more minimalist.

- 29,161
- 19
- 114
- 169
Tornado can run on app engine and is similar to node.js but using python, and has a nice yield approach too. But there are limitations with tornado's use on app engine that might defeat the object of using it for your project. See tornado on github for more info I use both but node.js with connect middelware and express.js to make node easier to use for simple web apps.

- 2,031
- 3
- 16
- 13
Now the best option is to use Google Compute Engine and Datastore > link here
You can use Google Compute Engine to host your node.js app and use google-api-nodejs-client to connect to the datastore:
- You need to create a project in Google API Console, and activate Compute Engine service for it
- You have to enable Google Cloud Datastore API (see link above)
- You need to set your dataset-id (same identifier as your Google Cloud Project ID).
- You need to be connected to a Compute Engine instance with both the datastore and userinfo.email scopes (node.js support for certificate-based service accounts is not yet implemented).
- You need a working node.js environment in your Compute Engine machine.
- npm install google-api-nodejs-client in your administration command-line tool
And you should be ready to go

- 1,085
- 10
- 14
-
1You should add more information to your answer. Right now it is just a Link. if that link goes away, the answer will become useless. – Filipe Silva Nov 20 '13 at 11:48
-
1While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. – Radek Benkel Nov 20 '13 at 11:49
While not the same as pure app engine (eg. manual scaling and currently in alpha status), this is now possible using Appengine Managed VMs.
See:
- Appengine NodeJS Quickstart project
- appengine-nodejs library
They also announced a Node.JS library for working with the google cloud platform.
- gcloud-node library

- 4,718
- 2
- 35
- 31