Is it possible to develop a Google App Engine web app using Node.js or some other server side JavaScript approach?

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?

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.

Also you might want to check out ApeJS. A little framework I wrote similar to AppengineJS but more minimalist.

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.

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:

  1. You need to create a project in Google API Console, and activate Compute Engine service for it
  2. You have to enable Google Cloud Datastore API (see link above)
  3. You need to set your dataset-id (same identifier as your Google Cloud Project ID).
  4. You need to be connected to a Compute Engine instance with both the datastore and scopes (node.js support for certificate-based service accounts is not yet implemented).
  5. You need a working node.js environment in your Compute Engine machine.
  6. npm install google-api-nodejs-client in your administration command-line tool
Read More:   Why Jest's toThrow won't work when create an instance of a ES6 class directly in the constructor?

And you should be ready to go

While not the same as pure app engine (eg. manual scaling and currently in alpha status), this is now possible using Appengine Managed


They also announced a Node.JS library for working with the google cloud

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Similar Posts