0

我正在尝试从我从 Mac 终端(命令行)运行的一些服务器脚本中包含一些库。这不会在浏览器中运行 - 我正在为我的 iOS 应用程序的后端使用 Parse Cloud Code。任何想法为什么以下代码不起作用,而它在 Google Chrome 中起作用?

document.write('<script src="http://code.jquery.com/jquery-1.8.3.min.js" type="text/javascript"></script>');
document.write('<script src="https://raw.github.com/carlo/jquery-base64/master/ jquery.base64.min.js" type="text/javascript"></script>');
document.write('<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha1.js" type="text/javascript"></script>');

从终端运行它会给出错误:{"code":141,"error":"Uncaught ReferenceError: document is not defined"}。

4

1 回答 1

0

服务器端Javascript中通常没有document。这是因为没有创建 DOM,这就是您收到错误 ( Uncaught ReferenceError: document is not defined) 的原因。

此外,通常,script标签不会用于加载 javascript 文件(没有 DOM)。

Node.js 使用模块接口require来请求模块(这也意味着模块不会在全局空间中使用;例如window在浏览器中,process在 Node.js 中)。不幸的是,很多客户端 javascript 库无法在服务器端运行(jQuery 就是这种情况,因为它用于操作服务器端不存在的 DOM)。

然而,在节点中,cheerio基本上有人在服务器上实现 jQuery 语法来生成 DOM 字符串。但就您而言,我宁愿寻找在您的环境中工作的特定库。

Enaway,在你稍微澄清了你的问题之后。我认为您对为什么会收到document not defined错误有一个答案(您没有在浏览器中工作,因此您没有 DOM)。从那里,您真的需要阅读Cloud Code Guide文档并了解他们的环境是如何工作的;但绝对不是因为它说它使用 javascript,你可以将你在浏览器上的工作方式转移到服务器上。

祝你好运。

于 2012-12-18T03:38:11.737 回答