views:

1544

answers:

9

So I was writing a web app with web.py that uses plenty of client-side javascript, and my database is on couchdb so the queries are in javascript too, and eventually I just got to thinking, why not skip the python and go all javascript? Besides, some functions need to run once on the client and again on the server to make sure you're not spoofing, so why translate between javascript and python?

So I'm looking for a simple lightweight javascript web framework. All I really need is the url routing, request and response stuff (standard wsgi?), and a way to hook into a big http server like nginx. What do you guys recommend?

+2  A: 

Have you looked at Helma?

Mike Akers
A: 

I haven't used it yet myself, but I've been following the progress of Synergy. Might be worth a look.

Andrew Hedges
Your link to Synergy is broken
Daniel X Moore
Fixed. Thanks for noticing.
Andrew Hedges
+3  A: 

To the best of my knowledge, Jaxer is the most production-ready server-side environment right now. There's a great editor, good and controlled code sharing between the server and the client, and programming paradigms that let you look at pages as a DOM tree on the server. You can also opt for deployment in the cloud if you like, or simply install it on a regular apache stack. DB support is a bit flaky, and an MVC framework and an ORM are currently missing, but I believe support is being added quickly.

If I were to do JS on the server, it would be Jaxer.

Rakesh Pai
http://ejohn.org/blog/server-side-javascript-with-jaxer/
David Murdoch
A: 

You might want to look at Phobos as well.

Will Hartung
A: 

If you using CouchDB, I would strongly recommend you look at the latest version of Dojo. Version 1.2 has a CouchDB data store.

Shaun
+3  A: 

helma - http://dev.helma.org/ - is a powerful and well tested framework. it runs several of the larger websites in austria.

Schnalle
+1  A: 

I use Helma-ng. It can run on Google App Engine. Pretty cool :) hamen

hamen
A: 

Have a look at Myna. It just went beta and has several advantages for web development:

  • Java Servlet Myna is a .war file that can be deployed on top of any Java servlet container, so you have a lot of flexibility in deployment platform. The Myna "server" package is just 20MB and includes a lightweight servlet container and startup scripts for Linux and windows
  • No built-in framework Simply create .sjs files in the webroot and they are interpreted as server-side JavaScript. No need for complicated application or package definitions.
  • Web Based Administration Tasks such as defining data sources, JS compiler settings, and centralized log management are handled via a web-based administrator
  • Templating Myna includes a simple template language that can be used directly in .ejs files or embedded in JS code to handle multi-line strings. This can make SQL much more readable.
  • SQL queries including SQL Parameters, connection pooling, and caching
  • Run time Object Relational Mapping Treats Database rows as objects with getters and setters without the need to pre-define the tables. Myna uses database metadata to construct data access objects at run time.
  • Caching User-defined query and fragment caching and automatic ETag calculations
  • Web Services Myna can server the same WebService definition over SOAP, XML-RPC, JSON-RPC, Ext.Direct or Myna's own JSON-MYNA
  • RESTful verbs Myna can handle "PUT" and "DELETE" HTTP requests and provides access to the body content in text and binary form
  • Multi-threading Take advantage of multiple cores for faster processing of long running requests, or launch background tasks
  • Strong Cryptography provided by Google KeyCzar
  • Centralized Authentication with OpenID support Users and permissions can be manages centrally from the administrator
  • Customizable Most of the "meat" of Myna is written in JavaScript and can be modified and or replaced to suit specialized needs
Mark Porter
A: 

How about Classic ASP / Jscript or even JScript.NET?

thomask