问题是javascript到coffeescript

时间:2011-11-18 15:06:48

标签: coffeescript

我是coffescript的新手,我正在尝试用咖啡代替javascript这个例子:

http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs

var request = require('request'),
jsdom = require('jsdom');

request({ uri:'http://www.google.com' }, function (error, response, body) {
  if (error && response.statusCode !== 200) {
  console.log('Error when contacting google.com')
}

  jsdom.env({
    html: body,
    scripts: [
    'http://code.jquery.com/jquery-1.5.min.js'
            ]
    }, function (err, window) {
    var $ = window.jQuery;

   // jQuery is now loaded on the jsdom window created from 'agent.body'
    console.log($('body').html());
   });
});

我的咖啡代码是这样的:

request = require 'request'
sys     = require 'sys'
jsdom   = require 'jsdom'

request uri: 'http://www.google.com' , (error,response,body) ->
  console.log "hay un error al conectar" if error && response.statusCode !=200
  #sys.puts(body)

  jsdom.env html : body , scripts : ['http://code.jquery.com/jquery-1.5.min.js'], (err, window) ->
      $ = window.JQuery
      console.log( $('body').html())

当编译并运行它时...这没有做任何事情......我已经检查了编译代码,对我来说没关系,我使用了http://jashkenas.github.com/coffee-script/的转换器,生成的代码几乎完全是我的js代码...

在这段代码中,我省略了几个括号,但我也尝试过这些也没用,我也不知道哪里出错了

感谢阅读和帮助:D

1 个答案:

答案 0 :(得分:1)

我通过http://js2coffee.org/运行了你的代码并得到了这个。虽然存在一些小的差异,但JQuery中的资本J是最可能的罪魁祸首。

request = require("request")
jsdom = require("jsdom")
request
  uri: "http://www.google.com"
, (error, response, body) ->
  console.log "Error when contacting google.com"  if error and response.statusCode isnt 200
  jsdom.env
    html: body
    scripts: ["http://code.jquery.com/jquery-1.5.min.js"]
  , (err, window) ->
    $ = window.jQuery

    # jQuery is now loaded on the jsdom window created from 'agent.body'
    console.log $("body").html()