Updated code in a repo ready to run for two great and useful Node.js Express CouchDB (and MongoDB) tutorialsThu, 2011-06-23 08:54 — victorkane
Up-to-date, executable code for two great tutorials on rolling a blog with express, Node.js and a noSQL database: https://github.com/victorkane/couchblogtut
The first, Blog rolling with mongoDB, express and Node.js, takes you "through the steps required to get a fully-functional (albeit feature-light) persistent blogging system running on top of node. It was first published on February 18, 2010 by Ciaran Jessup and last updated May 14, 2010.
The second, Blog rolling with CouchDB, Express and Node.js, was published on February 7, 2011 by Ian Wootten, and was commented on just this last April.
This pedagogical repo brings it up to date (as of June 22, 2011), makes a MongoDB branch basing the persistence on MongoDB; and a CouchDB branch (ultimately merged into Master) after the more recent article.
Far from being a wannabe "missing manual" for Jade this article is simply my own "path of understanding" of how the Jade template engine is utilized in the Express framework, expressed in a simple "work in progress" app which you can find here: https://github.com/victorkane/heyjade
Now, everyone complains that there is "no documentation" for Jade. Actually, just on github, there is a lot in the Readme.md, plus a huge examples directory, plus a jade example in the Express source. Not to mention the Express Guide, which enlightens us on many aspects of how Jade is used with Express.
So I thought I would just work my way through a good part of that, by building a little sample app on github that you can step through by branching through the commits. Again, please follow along here, and check back every now and then for updates as my comprehension goes deeper and deeper (I hope).: https://github.com/victorkane/heyjade
I've written about vim as an IDE before. In this case, however, in order to prepare for node hacking, and also in line with a recent discussion about IDE's on the node mailing list, I'm documenting here notes I made while getting geared up with gvim (macvim) for SSJS development with some of the more important plugins that were mentioned (you know, it's that "so how do I actually do this" moment) (this should all work fine on either MacBook Pro or Ubuntu/Linux):
This article rounds up what is available on the internet right now for getting started with Node.js, and includes a gem at the beginning a special recommendation at the end.
- Ryan Dahl's 2009 presentation of Node.js at JSConf 2009
As cited in the Node.js mailing list, this gem is still best single intro to the concepts, architecture and general overview of Node.js despite the passing of two years (a long time in SSJS land!).
- 7 Free E-Books and Tutorials for Learning and Mastering Node.js lists several sources, and I will outline a general description of each below.
- edit (best dive in deep free resource): The "Let's make a web app" series of articles and accompanying github repo commits conforming the Nodepad editor project (built on Node.js, Express.js and MongoDB) on the dailyjs.com blog, written by Alex Young. Continually updated by Alex as different versions of node, npm, etc. emerge, it will "walk you through building a web app with Node, covering all the major areas you’ll need to face when building your own applications."
- edit (deserves special mention): Hands-on Node.js http://nodetuts.com/handson-nodejs-book.html
You can download the first 60 pages of this $3.99 book for free. My verdict: looks like it actually gives devs what they need to start building applications. Will write review after working with it.
- edit: http://www.ibm.com/developerworks/cloud/library/cl-nodejscloud/
Sometimes the simplest, easiest things are not documented anywhere, or at least, not documented very clearly, so I just thought I would document what I did here in order to get started running the examples provided in the full Express codebase.
Let's suppose that node and npm are already installed and I am in the home directory of a Linux user. I do:
$ git clone https://github.com/visionmedia/express.git express_examples
and Express is cloned to the express_examples subdirectory. I then change into that directory:
$ cd express_examples
and tell the npm package manager to check for all dependencies (if you are on the Express mailing list see discussion at http://groups.google.com/group/express-js/browse_thread/thread/166a75fdb...):
$ git submodule update --init
$ npm install
The package manager npm will now do a lot of work and pages will scroll by. After a short while the trundling will stop and a ./node_modules directory will be filled with dependencies.
Then you can run any example you like: