News for hackers. Stuff that matters.
Re:A Quick Node.js Jumpstart by joevandyk on Friday April 08, 2011 @06:01PM (#2425773)
You should be using coffeescript though, makes the javascript in the example look like:

  fs = require('fs')

  for i in [1..3]
    fs.readFile 'test.coffee', (err, data) ->
      console.log("#{i}. Finished reading file")
    console.log("#{i}. doing something important...")

And if you want to get rid of that "gotcha" (which is a javascript one, not a node.js one):

  fs = require('fs')

  for i in [1..3]
    do (i) ->
      fs.readFile 'test.coffee', (err, data) ->
        console.log("#{i}. Finished reading file")
    console.log("#{i}. doing something important...")
This will output the number you'd intuitively inside the file read callback function.
Re:A Quick Node.js Jumpstart by nolite on Friday April 08, 2011 @08:45PM (#2426140)
do you need to preprocess the coffescript somehow before node runs it, or will node run it directly?
Re:A Quick Node.js Jumpstart by marcomonteiro on Friday April 08, 2011 @09:26PM (#2426219)
Re:A Quick Node.js Jumpstart by nonames on Friday April 08, 2011 @10:58PM (#2426376)
Not necessarily. The distributed `coffee` script will automatically compile before running the script. Plus it shows you coffeescript-friendly tracebacks on error.
Re:A Quick Node.js Jumpstart by marcomonteiro on Saturday April 09, 2011 @07:40PM (#2428412)
Whether I manually compile it or it's automatically compiled it still has to be compiled which was the question I was responding to. Which is to say Node.js will not run CoffeeScript directly.
Re:A Quick Node.js Jumpstart by checker on Friday April 08, 2011 @02:49PM (#2425122)
As someone who has read about node but never actually looked at any demo code, this was a pretty good example. Now I understand what all the fuss is about!
Re:A Quick Node.js Jumpstart by abtinf on Friday April 08, 2011 @05:07PM (#2425608)
If folks have node questions, we would be happy to help - wompt is built on node.

http://wompt.com/chat/nodejs

Re:A Quick Node.js Jumpstart by ryanfitz on Friday April 08, 2011 @07:48PM (#2426029)
what is a good way to share something like a db connection between modules?
Re:A Quick Node.js Jumpstart by _pdeschen on Friday April 08, 2011 @09:08PM (#2426182)
I think using require would do the trick. Something along the line like:

/* foo.js /

var date = new Date();

exports.Date = date;

/ bar.js /

var foo = require('./foo.js');

exports.Date = foo.Date;

/ foobar.js */

var foo = require('./foo.js');

var bar = require('./bar.js');

console.log(foo.Date);

console.log(bar.Date)

> console.log(foo.Date);

Sat, 09 Apr 2011 01:05:12 GMT

> console.log(bar.Date)

Sat, 09 Apr 2011 01:05:12 GMT

We are dealing with the same date variable between modules.

[edited. not a good place to share code. gist over github: https://gist.github.com/910994]

Re:A Quick Node.js Jumpstart by jimmyjazz14 on Friday April 08, 2011 @09:00PM (#2426165)
One way might be with a closure that wraps the entire module though taking a more OO approach would probably be safer, such as initializing objects with the DB connection as an argument.