我是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
答案 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()