错误消息时试图安装jQuery与node.js

我正在尝试在node.js应用程序中使用jQuery。 我可以用Node.js使用jQuery吗? 但是当我试图运行npm install jQuery jsdom htmlparser xmlhttprequest和简单的npm install jQuery似乎没有一个为我工作。 这里是我得到的错误信息的全文:

  $ npm install jQuery jsdom htmlparser xmlhttprequest npm http GET https://registry.npmjs.org/htmlparser npm http GET https://registry.npmjs.org/jQuery npm http GET https://registry.npmjs.org/xmlhttprequest npm http GET https://registry.npmjs.org/jsdom npm http 304 https://registry.npmjs.org/jsdom npm http 304 https://registry.npmjs.org/htmlparser npm http 304 https://registry.npmjs.org/xmlhttprequest npm http 200 https://registry.npmjs.org/jQuery npm http GET https://registry.npmjs.org/contextify npm http GET https://registry.npmjs.org/cssom npm http GET https://registry.npmjs.org/request npm http 304 https://registry.npmjs.org/contextify npm http 304 https://registry.npmjs.org/cssom npm http 304 https://registry.npmjs.org/request npm http GET https://registry.npmjs.org/bindings npm http 304 https://registry.npmjs.org/bindings > contextify@0.1.2 install /Users/nicmeiring/node_modules/jsdom/node_modules/contextify > node-gyp rebuild info it worked if it ends with ok spawn python [ '/Users/nicmeiring/.node-gyp/0.6.14/tools/gyp_addon', 'binding.gyp', '-I/Users/nicmeiring/node_modules/jsdom/node_modules/contextify/build/config.gypi', '-f', 'make' ] ERR! Error: not found: make at F (/usr/local/lib/node_modules/npm/node_modules/which/which.js:43:28) at E (/usr/local/lib/node_modules/npm/node_modules/which/which.js:46:29) at Object.oncomplete (/usr/local/lib/node_modules/npm/node_modules/which/which.js:57:16) ERR! not ok npm WARN optional dependency failed, continuing contextify@0.1.2 xmlhttprequest@1.3.0 ./node_modules/xmlhttprequest jquery@1.6.3 ./node_modules/jquery htmlparser@1.7.5 ./node_modules/htmlparser jsdom@0.2.13 ./node_modules/jsdom ├── request@2.9.200 └── cssom@0.2.3 

在我的node.js应用程序文件(app.js)中,我使用了var $ = require('jQuery)来包含jquery模块,但是,如我所料,当我尝试在我的应用程序中使用jQuery时,它会返回一个错误。 任何想法是什么导致安装失败? 谢谢

更新:jquery模块成功安装,但是当我尝试运行我的应用程序时,我得到一个新的错误。 这里是脚本:

app.js

  var express = require('express') , routes = require('./routes') , $ = require('jquery'); var app = module.exports = express.createServer(); // Configuration app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(require('stylus').middleware({ src: __dirname + '/public' })); app.use(app.router); app.use(express.static(__dirname + '/public')); }); app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function(){ app.use(express.errorHandler()); }); // Routes app.get('/', routes.index); app.get('/', routes.getData); app.listen(4000); console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); 

和index.js

 var $ = require('jquery'); exports.index = function(req, res){ console.log("rendering index.html") res.render('layout', { title: 'Express' }) }; var link = "http://en.wikipedia.org/w/api.php?action=parse&format=json&callback=?" exports.getData = $.ajax({ url: link, dataType: JSON, data: data, success: function(data) { console.log(data); console.log(data.parse.text['*']); } }); 

这是我在启动应用程序时遇到的错误

  Nic-Meirings-MacBook-Pro:Wiki2 nicmeiring$ node app node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ ReferenceError: $ is not defined at Object.<anonymous> (/Users/nicmeiring/Sites/Wiki2/routes/index.js:16:19) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Module.require (module.js:354:17) at require (module.js:370:17) at Object.<anonymous> (/Users/nicmeiring/Sites/Wiki2/app.js:7:14) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) 

看来你缺less开发者工具附带的“make”。 这里是相关的SO问题:

https://stackoverflow.com/a/1470005/337504