使用 require 和 node.js 加载远程 js 文件

2023-11-25

我一直在使用 NodeJS 和 javascript 开发在线套接字服务器,并且我一直在使用 require 在我的代码中创建“游戏室”:

new_game_obj = require('./forza4.js');

现在..当我在本地计算机上测试我的代码时,这可以找到,但是对于生产服务器,我遇到了问题。似乎由于某种技术原因,运行我的代码的进程与我有权访问的计算机(用于文件上传等)位于不同的计算机上,因此服务器场的人员要求我更改我的代码代码,以便我将从全局位置加载“forza4.js”中的代码,而不是像我现在那样在本地加载。 所以我将代码更改为:

new_game_obj = require('http://www.xxxxx.com/blabla/forza4.js');

(当然,我测试了该文件是否存在,只是为了确定,当我指向该实际地址时,它会显示在浏览器中) 但我的代码出现错误(此时,我再次在我的计算机上本地运行此错误),其中显示:

异常:错误:找不到模块'http://www.xxxxx.com/blabla/forza4.js'

所以为了安全起见,我做了:

new_game_obj = require('http://92.xx.xx.xx/blabla/forza4.js'); 

但同样的错误又出现了。

从远程服务器加载“扩展”到我的代码是否应该出现问题,或者我只是格式化“require”调用错误?

非常感谢!

Yuval.

附: 这是该线程的后续内容:这是较旧且已解决的帖子


看一下node.js模块文档

具体可以参考要求的算法

在 Node.js 中,require调用是同步的,因此无法加载不在您的文件系统上的文件(即从外部 URL)。

Update

您可以通过获取代码http请求- 或者,更好的是,一个https 请求并使用内置运行它vm模块 - 甚至与eval,但这似乎不是一个好主意 - 正如建议的那样这个老问题.

就像是

https.get( 'https://www.xxxxx.com/blabla/forza4.js', function( res ){
  res.on( 'data', function( data ){
    vm.runInThisContext( data, 'remote/forza4.js' );
  });
});

Note: 我没有测试这段代码

当然,这不是最好的解决方案,但确实是一个解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 require 和 node.js 加载远程 js 文件 的相关文章

随机推荐

  • Crystal Reports 图像和 ASP.Net MVC

    当我使用使用 CrystalImageHandler aspx 的图表和图像时 我在使用 Crystal Reports 时遇到了问题 图像无法显示 我怀疑这是由于 MVC 路由问题造成的 路径图像路径类似这样 src CrystalIma
  • Symfony2/Twig - 迭代选择选项

    常用显示方式select字段是要调用的 form row form doctor service id attr class form control 我想执行两件事 检查该字段是否实际上是一个选择字段 迭代每个选项 值 名称 我知道该怎样
  • React useState setter 内的更新被调用两次

    我正在尝试更新 useState setter 范围内的内容 这正如我在以下 codepen 示例中所期望的那样 更新状态变量之外的值 但正如我的应用程序中所实现的insideCallCount每人都会被叫两次toggleCell称呼 相关
  • Google 字体无法在 Internet Explorer (IE) 11 中运行

    目前正在使用 Google Fonts 构建一个网站 一切都可以在 IE6 到 10 Firefox Chrome 和移动浏览器上运行 然而 在 IE 11 上 不会加载任何字体 并且所有内容都使用后备字体 无衬线字体等 显示 同样的问题似
  • AngularJS:何时使用服务而不是工厂

    请耐心听我说 我知道还有其他答案 例如 AngularJS 服务 提供商 工厂 但是我仍然不知道你什么时候会使用工厂服务 据我所知 工厂通常用于创建可由多个控制器调用的 通用 函数 创建通用控制器功能 Angular 文档似乎更喜欢工厂而不
  • SQL Server 清除内存

    是否可以从 SQL Server 填充的数据中清除 RAM 内存 有什么程序或选项可以做到这一点吗 您可以使用 CHECKPOINT DBCC DROPCLEANBUFFERS to 从内存中删除所有数据页 测试服务器性能很有用 如果查询所
  • 即使机器人是管理员,Discord JS 管理角色权限也丢失

    我的 Discord 机器人没有向使用该命令的用户添加角色 My Code if userCmd toLowerCase prefix verify if message member roles cache find role gt ro
  • 让 Django 1.7 在 Google App Engine 上运行

    任何人都可以帮助向我们指出如何让 Django gt 1 5 在 Google App Engine 上运行的说明吗 我看到很多人声称他们可以使用 Django 1 6 我们希望运行 1 6 或 1 7 我在这里搜索了有关如何设置的说明 到
  • iOS5 UITapRecognizer 用于 UIScrollView 干扰按钮。怎么修?

    我有一堆UIButtons 内UIView在一个UIScrollView 我正在尝试向滚动视图添加点击识别器 点击识别器会触发 但现在我的按钮都不起作用 我知道在iOS5中 UIScrollView可以在完成触摸事件后以某种方式将其传递到控
  • UIImage 的 CGImage 返回 NULL

    我创建了一个将图像分割成多个图像的函数 但是当我获取 UIImage 的 CGImage 时 CGImage 返回 NULL NSArray splitImage UIImage image NSUInteger pieces NSLog
  • 如何从 Core 2 Razor 页面 ViewModel 处理程序返回部分视图

    在 Asp Net MVC 中 您可以通过执行以下操作轻松返回部分视图 return PartialView ModelName Model 这是如何在 RazorPage ViewModel 处理程序上完成的 我明白了这一点 它并不像 M
  • 为什么这里Java运行得比C快呢?

    灵感来自这个问题 Now visible only for users with gt 10k rep 我想出了以下代码 cat loop c int main int argc char argv int i 0 while i lt 2
  • 如何在 AVX 或 SSE 指令中进行间接加载(聚集-分散)?

    我已经搜索了一段时间 但似乎在文档或 SO 中找不到任何有用的东西 这个问题并没有真正帮助我 因为它引用了修改程序集 而我正在用 C 编写 我有一些代码进行间接访问 我想对其进行矢量化 for i 0 i lt LENGTH i foo b
  • Symfony2:如何从存储库访问服务

    我有 ModelsRepository 类 class ModelsRepository extends EntityRepository 和服务 container data class ProjectName MyBundle Comm
  • 用字典替换 pandas Series 中的值

    我想替换 pandas 中的值Series使用字典 我正在关注 DSM接受的答案像这样 s Series abc abe abg d b B s replace d 但这没有效果 0 abc 1 abe 2 abg dtype object
  • 使用 ERB 打印数组元素[重复]

    这个问题在这里已经有答案了 我正在尝试将控制器中定义的简单数组打印到我的视图中 并为每个元素添加一个新行 但它所做的是将整个数组打印在一行上 这是我的控制器 class TodosController lt ApplicationContr
  • Android中如何用canvas画圆?

    我想用画布画圆 这是我的代码 我的活动 java public class MyActivity extends Activity public void onCreate Bundle savedInstanceState setCont
  • 数组属性、TList、TStringList 或 TCollection 等 (Delphi Win32)

    我正在开发各种组件 并且经常遇到需要拥有一个具有 一对多 关系 组件到属性成员 的属性 这些组件通常是可视组件 但并非总是如此 有时需要向 IDE 注册 即使用属性检查器 但并非总是如此 我发现自己不确定在设置这些属性时要采取哪条路线 使用
  • 最新和旧版本冲突的两个 Maven 依赖项

    我正在使用 spring data dynamoDB 项目here 根据其pom xml他们用过1 6 9 1的版本aws java sdk 但我需要在我的项目中使用最新版本的 aws java sdk 以便使用它的一些功能来实现 Amaz
  • 使用 require 和 node.js 加载远程 js 文件

    我一直在使用 NodeJS 和 javascript 开发在线套接字服务器 并且我一直在使用 require 在我的代码中创建 游戏室 new game obj require forza4 js 现在 当我在本地计算机上测试我的代码时 这