A Simple MVC Setup in Node.js
travisglines.com
travisglines.com
This guy http://nodetuts.com/ has video tuts on using Express, Jade and Mongoose to make a simple web service.
I'll try and make it chock full of details this time around.
The tutorials on nodetuts are solid.
Why don't you think node.js is a fit for a fully fledged dynamic website? What things is it missing?
I know its been used as a high performance tool historically but whats holding it back from becoming more?
uglify.js, mongoose, and stylus, just to name a few.
If its serious is basically boils down to event driven architectures (node,tornado etc) vs. thread driven (apache) and how they can typically handle concurrency better.
Out of curiosity: do you just generally dislike JavaScript as a language? And remember that Node doesn't run in a browser, so this would be ignoring any browser problems. I, personally, have been liking it a lot, and more-so as I go deeper down the rabbit hole.
https://github.com/tmpvar/jsdom
jsdom implements DOM level 2 so you could actually mimic the javascript run in webpages (ie it would actually properly evaluate document.write() embedded in script tags). Web page scraping libraries in other languages won't have this feature easily because other languages will need to include a javascript interpreter along with their DOM emulator. I believe there's a java library out there that makes use of rhino to do this (htmlunit) but it took them quite some time to get there (several years). Most of the hard work in jsdom was implemented in a few months.
They are two separate models, and will most likely remain as such for the foreseeable future. While I can only speak for myself, I'd advocate using it because the language is indeed nice, and much more flexible overall than some of the alternatives. On top of that, it's got several large companies with a vested interest in its development, which is far more than can be said for some of its competition.
Really, the point I'd like to counter here is this: your productivity does not skyrocket, and it's not necessarily the reason to want to use JS server side. For example, the JS syntax works incredibly well for event based programming, and is largely tried and true with its use client side. That's a reason to want JS on the server, and I really wish people would quit throwing around the reusability claim like they do.
That alone makes it enough for me without its other benefits.
* The convenience of not needing to switch mind-sets so much between server and client side, if you are working on both (rather than being part of a large team so you are working on one and can pretty much ignore the other). Even if the environment is very different between client and server sides, you are at least not switching syntax all the time. Having a common data transfer structure (JSON) that is native to both client and server (so aside from input validation that you'd have to do on any structure, there is potentially less formatting and/or parsing code for you to write/debug) can be handy too.
* The potential for shared code. For most simple cases this isn't significant (needing to map between the DOM and your server-side state or vice-versa cause more hassle than the code sharing saves), but if you have an app that has a lot of business logic client-side in order to reduce round-trips and so improve the user experience, you don't need to entirely reimplement input validation code (because you don't trust the client, right?) in a second language on the server, or the rest or the logic if you want to have a relatively-script-less screen-reader-friendly version fo accessibility reasons. I've not used node.js in anger (I keep updating the install I have on my personal server, in the hope I will one day soon have enough free time to play a little by implementing one of my daft-little-idea side projects in it), but I have used javascript server-side for these reasons professionally (under IIS with "classic" ASP a few years ago, before node.js or most of the other current SSJS implementations were in existence or known to me). I must say though that good opportunities to make use of this code sharing are a lot less common than some people make out.
* Javascript itself is quite a nice language. Certainly not without its faults (end-of-line handling being one of my key gripes) but generally a language that I like working with, certainly more so than PHP or Perl. A lot of people conflate DOM and CSS related compatibility headaches with Javascript problems. "JavaScript: The Good Parts" is a book worth scanning for the things that make the language "right" (the book does have a chapter touching on the things that are less than right too).
* node.js isn't just about Javascript - server-side JS has been around in various forms for quite some time (see http://en.wikipedia.org/wiki/Comparison_of_server-side_JavaS... for a list). Its event driven asynchronous nature is quite different to the thread or process based servers many people are used to, which piques people's interest (either purely academic interest, because of the memory/CPU efficiency this can give you if put to good use, or because they might prefer that way of working as it solves some other problem they've had with other approaches). How quickly node.js is growing from interesting curiosity to relative mature architecture also helps it garner interest (other server-side JS solutions have stagnated as the early adopters/experimenters moved on due to lack of progress), especially since it hit the magic critical mass needed to fuel an amount of self perpetuating coverage (people talk about it, so others learn about it, so they talk about it, ...).
Of course it may be that none of the above applies to you or your projects in a useful way, in which case you don't want to use Javascript serverside and are likely to be better off sticking with (or learning) something else.