2011-11-18 22 views
1

我新手與coffescript我試圖用咖啡在這個例子中,而不是JavaScript的:問題去javascript來的CoffeeScript

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/的轉換器和生成的c頌歌幾乎正好到我的js代碼......

在這段代碼中我省略了幾個支架,但我已經與這些也嘗試過和沒有工作沒有我不知道哪裏是錯誤

感謝您的閱讀和幫助:D

+9

window.JQuery?大寫字母J? – tokland

+0

您是否嘗試過運行原始JavaScript以確認它在您的環境中可用?它可能是Node的配置問題,而不是編寫正確CoffeeScript的問題。否則,我同意@tokland--可能是我自己寫的這個資本J –

回答

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() 
+1

,我非常驚訝js2coffee已經轉換了它,它幾乎完全相同。 +1爲js2coffee –