如何在节点js中使用jquery?

我想在我的节点js文件中使用jQuery。 我已经安装了jquery模块。

当我访问该页面时,出现错误:

var jqxhr = jquery.$.getJSON( "favs.json", function() { ^ TypeError: Cannot call method 'getJSON' of undefined at Server.<anonymous> at Server.EventEmitter.emit (events.js:98:17) at HTTPParser.parser.onIncoming (http.js:2076:12) at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:120:23) at Socket.socket.ondata (http.js:1966:22) at TCP.onread (net.js:525:27) 

码:

 var http = require('http'); var jquery = require('jquery'); var PORT = 3000; http.createServer(function(request, response) { response.writeHead(200, {'Content-Type': 'text/plain', 'Access-Control-Allow-Origin': "*"}); var jqxhr = jquery.$.getJSON( "favs.json", function() { console.log( "success" ); }) .done(function() { console.log( "second success" ); }) .fail(function() { console.log( "error" ); }) .always(function() { console.log( "complete" ); }); }).listen(PORT); console.log('Server running at http://127.0.0.1:' + PORT + '/'); 

有谁知道如何解决这一问题?

谢谢。

更新:对于最近的版本(> = 2.1.0),实例化完成不同,现在也需要jsdom :

 var env = require('jsdom').env; var html = '<html>...</html>'; env(html, function(err, window) { console.log(err); var $ = require('jquery')(window); }); 

你没有正确实例化jQuery对象。 这是应该如何做的:

 var jquery = require('jquery'); var $ = jquery.create(); 

那么你可以使用你想要的方法:

 $.getJSON('/resource.json', function() { console.log('success'); }) .done(function() { console.log('second success'); }) .fail(function() { console.log('error'); }) .always(function() { console.log('complete'); });