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

时间:2014-01-18 14:23:33

标签: javascript jquery node.js

我使用以下行安装了jQuery for Node:

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需要一个带文档的窗口'时,它是什么意思?

1 个答案:

答案 0 :(得分:1)

jQuery是为客户端javascript(在Web浏览器中运行的javascript)创建的库。在webbrowser中运行的Javascript具有windowdocument对象。在服务器上运行的Javascript(Node.js)没有(因为它当然没有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);
});