我正在尝试在我的节点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 + '/');
有谁知道如何解决这个问题?
感谢。
答案 0 :(得分:5)
更新:对于最新版本(&gt; = 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');
});