我正在尝试从一些服务器脚本中包含一些库,这些脚本是我从Mac终端(命令行)运行的。这不会在浏览器中运行 - 我正在使用Parse Cloud Code作为我的iOS应用程序的后端。任何想法为什么以下代码不起作用,而它确实在谷歌浏览器中工作?
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”:“未捕获的ReferenceError:文档未定义”}。
答案 0 :(得分:0)
服务器端Javascript通常没有document
。这是因为没有创建DOM,这就是你得到错误的原因(Uncaught ReferenceError: document is not defined
)。
此外,通常,script
标签不会用于加载javascript文件(没有DOM)。
Node.js使用require
模块接口来请求模块(这也意味着模块不会在全局空间中使用;例如浏览器中的window
,process
in Node.js的)。不幸的是,许多客户端javascript库将无法在服务器端工作(这是jQuery的情况,因为它用于操作不存在服务器端的DOM)。
在节点中,有cheerio
基本上在服务器上实现jQuery语法以生成DOM字符串。但在您的情况下,我宁愿寻找适合您环境的特定库。
Enaway ,在您澄清了一点问题之后。我想你有一个答案,为什么你得到document not defined
错误(你没有在浏览器中工作,因此你没有DOM)。从那里,你真的需要阅读Cloud Code Guide
文档,看看他们的环境是如何工作的;但肯定的是,并不是因为它说它使用了javascript,你可以将浏览器的工作方式转换为服务器。
祝你好运。