尝试使用node.js安装jquery时出现错误消息

时间:2012-04-10 22:21:22

标签: javascript jquery node.js

我正在尝试在node.js应用程序中使用jQuery。根据{{​​3}}似乎很容易,但当我试图运行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)

1 个答案:

答案 0 :(得分:2)

您似乎缺少开发人员工具附带的“make”。以下是相关的SO问题:

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