title: "node.js: throw e; // process.nextTick error," while trying browserid
body: <p>I'm not going to use other module like <code>request</code>, how about writing this with <code>http</code>,<br>
  What should I consider while seeding post to browserid?</p>
  
  <p>error:</p>
  
  <pre><code>$ coffee server.coffee 
    info  - socket.io started
  to send
  to write
  end?
  
  node.js:201
      throw e; // process.nextTick error, or 'error' event on first tick
            ^
  Error: getaddrinfo ENOENT
    at errnoException (dns.js:31:11)
    at Object.onanswer [as oncomplete] (dns.js:140:16)
  </code></pre>
  
  <p>source:</p>
  
  <pre><code>ll = console.log
  
  fs = require 'fs'
  page = fs.readFileSync 'page.html', 'utf-8'
  query = require 'querystring'
  
  client = fs.readFileSync 'client.coffee', 'utf-8'
  page = page.replace '@@@', client
  
  handler = (req, res) -&gt;
    res.writeHead 200, 'Content-Type': 'text/html'
    res.end page
  
  http = require 'http'
  app = http.createServer handler
  app.listen 8000
  
  io = (require 'socket.io').listen app
  io.set 'log level', 1
  io.sockets.on 'connection', (socket) -&gt;
    socket.emit 'ready', 'go'
  
    socket.on 'assertion', (data) -&gt;
      msg = query.stringify
        assertion: data
        audience: 'localhost:8000'
  
      options =
        host: 'https://browserid.org'
        path: '/verify'
        method: 'POST'
        headers:
          'Content-Type':  'application/x-www-form-urlencoded'
          'Content-Length': msg.length
      ll 'to send'
      request = http.request options, (response) -&gt;
        str = ''
        ll 'prepare'
        response.on 'data', (chunk) -&gt;
          str += chunk
          ll str
        response.on 'end', -&gt;
          ll str
      request.write msg
      ll 'to write'
      request.end()
      ll 'end?'
  </code></pre>
  
  <p>with long-stack-traces:</p>
  
  <pre><code>$ coffee server.coffee 
         info  - socket.io started
      to send
      to write
      end?
      Uncaught Error: getaddrinfo ENOENT
          at errnoException (dns.js:31:11)
          at Object.onanswer [as oncomplete] (dns.js:140:16)
      ----------------------------------------
          at EventEmitter.on
          at Array.&lt;anonymous&gt; (http.js:1147:12)
          at EventEmitter._tickCallback (node.js:192:40)
      ----------------------------------------
          at EventEmitter.nextTick
          at ClientRequest.onSocket (http.js:1115:11)
          at Agent.addRequest (http.js:938:9)
          at new ClientRequest (http.js:1068:16)
          at Object.request (http.js:1331:10)
          at Socket.&lt;anonymous&gt; (/home/chen/code/home/git/docview/learning/coffee/browserid/server.coffee:52:22)
          at Socket.$emit (events.js:67:17)
          at SocketNamespace.handlePacket (/usr/lib/nodejs/socket.io/lib/namespace.js:335:22)
      ----------------------------------------
          at EventEmitter.on
          at SocketNamespace.&lt;anonymous&gt; (/home/chen/code/home/git/docview/learning/coffee/browserid/server.coffee:37:19)
          at SocketNamespace.$emit (events.js:88:20)
          at connect (/usr/lib/nodejs/socket.io/lib/namespace.js:292:10)
          at /usr/lib/nodejs/socket.io/lib/namespace.js:308:13
          at SocketNamespace.authorize (/usr/lib/nodejs/socket.io/lib/namespace.js:252:5)
          at SocketNamespace.handlePacket (/usr/lib/nodejs/socket.io/lib/namespace.js:302:14)
          at Manager.handleClient (/usr/lib/nodejs/socket.io/lib/manager.js:669:30)
      ----------------------------------------
          at EventEmitter.on
          at Object.&lt;anonymous&gt; (/home/chen/code/home/git/docview/learning/coffee/browserid/server.coffee:35:14)
          at Object.&lt;anonymous&gt; (/home/chen/code/home/git/docview/learning/coffee/browserid/server.coffee:71:4)
          at Module._compile (module.js:441:26)
          at Object.run (/usr/lib/nodejs/coffee-script/lib/coffee-script/coffee-script.js:68:25)
          at /usr/lib/nodejs/coffee-script/lib/coffee-script/command.js:135:29
          at /usr/lib/nodejs/coffee-script/lib/coffee-script/command.js:110:18
          at [object Object].&lt;anonymous&gt; (fs.js:115:5)
          at [object Object].emit (events.js:64:17)
      Uncaught undefined
  
  node.js:201
      throw e; // process.nextTick error, or 'error' event on first tick
            ^
  </code></pre>