Help! I'm trying to use jquery in my node.js app, but I keep getting an error when I try to use '$', saying $ is not defined... but I defined it at the top! Here's what I did:
I installed both packages from npm like so:
npm install jquery
npm install jsdom
then I required them in my node.js app:
require(jsdom).env(, function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require(jquery)(window);
});
doSomething();
Then I'm trying to use it like so:
function doSomething(){
var deferred = $.Deferred();
}
and I get the following error:
var deferred = $.Deferred();
^
ReferenceError: $ is not defined
Do you think that the function
is getting executed before the var $ =
part?
Thanks!
Versions:
- Node: 4.2.6
- Express: 4.12.4
- JQuery: 2.2.3
- JSDom: 8.3.0
Update: Solution
Here's what I ended up using, based on everyone's answers!
var $;
require(jsdom).env(, function(err, window) {
if (err) {
console.error(err);
return;
}
$ = require(jquery)(window);
doSomething();
});