我对Meteor.JS很陌生,并且尝试在服务器上使用脚本。当我需要客户机上的脚本时,我只是使用jQuery的$.getScript(我的-script.js)来加载它,但是在服务器上,我得到了一个$ is not defined错误,大概是因为jQuery没有加载到服务器上。如何实现与$.getScript()调用类似的结果服务器端?
发布于 2014-11-10 20:03:40
您不需要手动加载外部脚本,只需将它们作为文件添加到项目文件夹中即可。文件夹中的所有文件都将由流星加载。请参阅文档的起搏部分,以了解如何使定义在全局范围内可用,而不仅仅是在内部提供给脚本。
// File Scope. This variable will be visible only inside this
// one file. Other files in this app or package won't see it.
var alicePerson = {name: "alice"};
// Package Scope. This variable is visible to every file inside
// of this package or app. The difference is that 'var' is
// omitted.
bobPerson = {name: "bob"};发布于 2014-11-10 06:00:55
我不会建议这个过程,尤其是在服务器上。这使你面临许多风险。.getScript方法使用eval,它在应用程序上创建一个远程代码执行漏洞。
尽管如此,您仍然可以使用http包。
meteor add http然后您可以检索脚本并执行它:
var jsCode = HTTP.get("<full url>").content;
eval(jsCode);发布于 2014-11-11 03:11:14
如果您使用的是第三方脚本,最佳实践是创建一个包来包装它。在包中,您必须导出包的全局变量:api.export('GlobalVariable')
如果要在服务器文件夹中添加脚本,请不要使用var,否则它只会保持全局到文件范围。
服务器上不存在jQuery,原因很好:您需要一个DOM来使用它。你可以用幻影来做:服务器端jquery
并非所有代码都运行在客户端和服务器上。
https://stackoverflow.com/questions/26836740
复制相似问题