Node.js – 安装后无法使用jQuery

我用下面的语句为Node安装了jQuery:

npm install jquery 

在我的服务器端Node.js代码的开始,我把这个:

 var $ = require('jquery'); 

它安装得很好,模块在我的服务器上可见。 现在,我正在尝试在同一个文件中执行此操作:

 $.each(rows, function(num, row){ console.log(row.username); }); 

但是我得到以下错误:

 TypeError: Object function ( w ) { if ( !w.document ) { throw new Error( "jQuery requires a window with a document" ); } return factory( w ); } has no method 'each' at Query._callback (/home/lights/public_html/apps/node_servers/fircik_gamelist.js:69:5) 

它说“没有方法,我不明白,因为,显然,jQuery应该有这种方法。 在我安装jQuery模块之前,我尝试运行相同的代码,它给出了错误ReferenceError: $ is not defined ,并且安装成功完成后,该错误不再存在。

那么我在这里错过了什么?

当它说'jQuery需要一个窗口与文档'是什么意思?

jQuery是为客户端JavaScript创build的库(在Web浏览器中运行的JavaScript)。 运行在浏览器中的Javascript有一个window和一个document对象。 在服务器(Node.js)上运行的Javascript没有(因为它没有windowdocument当然..)。

所以这可能是jQuery不能在服务器端工作的原因。

您也可以使用原生的javascript循环访问数组的元素:

 for(var i = 0; i < rows.length; i++) { console.log(rows[i].username); } 

或者(正如Pointy指出的那样)在Array原型上使用本地.forEach()函数:

 rows.forEach(function(row) { console.log(row.username); });