【发布时间】:2012-10-10 09:06:56
【问题描述】:
我在 Windows 7 上运行了全新安装的 node.js,我正在尝试运行一个非常基本的 JQuery 脚本,名为 a.js,其中仅包含:
require("jquery");
$().jquery;
不幸的是,这不会与 JQuery 一起运行,给我一个 TypeError:
C:\Users\Ian>node a.js
C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:10
window.XMLHttpRequest.prototype.withCredentials = false;
^
TypeError: Cannot read property 'prototype' of undefined
at create (C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:10:26)
at C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:9435:18
at Object.<anonymous> (C:\Users\Ian\node_modules\jquery\lib\node-jquery.js:9437:2)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (C:\Users\Ian\a.js:1:63)
我通过 Google 发现了一些关于此错误的错误报告,其中大部分建议降级 JQuery。但是,当我这样做时,我会得到一个不同的错误。以下是 JQuery 1.6.3:
C:\Users\Ian>node a.js
module.js:340
throw err;
^
Error: Cannot find module 'location'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at create (C:\Users\Ian\node_modules\jquery\node-jquery.js:6:33)
at C:\Users\Ian\node_modules\jquery\node-jquery.js:9065:18
at Object.<anonymous> (C:\Users\Ian\node_modules\jquery\node-jquery.js:9067:2)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
谁能提出什么问题?我尝试了各种重新安装该软件的方法,但都没有成功。我已经为 jquery 的默认版本和 jquery@1.6.3 尝试了 npm install -g 和 npm install。
编辑:This question - 尚未得到答复 - 似乎相关。
【问题讨论】:
-
为什么要在服务器端运行 jQuery?
-
没有好的答案对不起@SLaks - 我正在使用在服务器端运行 JQuery 的其他人的代码。当我无法让它工作时,我想出了一个简单的测试示例,以确保问题只出在 JQuery 部分,而不是其他人的代码中的任何其他部分。
-
@Ina 是的,但这就是问题所在,jQuery 不是服务器端库,它依赖于节点中不存在的东西。
-
@JakubHampl 所以你认为没有解决方法吗?我相信我继承的代码运行良好。我可以通过手动安装软件包(例如上面的位置)来解决问题,但我最终遇到了 TypeError。我也很感激您可以提供的任何链接,而不是服务器端库,npmjs.org/package/jquery 似乎暗示它是,但我是新手,很容易出错。
-
@SLaks 有时您会在服务器端重复使用为浏览器编写的库。