当前位置: 首页 > 面试题库 >

如何从Node.js中的URL要求

戚逸清
2023-03-14
问题内容

是否有一种标准方法要求节点模块位于某个URL(而不是本地文件系统)上?

就像是:

require('http://example.com/nodejsmodules/myModule.js');

目前,我只是将文件提取到一个临时文件中,并要求这样做。


问题答案:

您可以使用http.get方法获取模块,并使用vm模块方法runInThisContext和runInNewContext在沙箱中执行它。

var http = require('http')
  , vm = require('vm')
  , concat = require('concat-stream'); // this is just a helper to receive the
                                       // http payload in a single callback
                                       // see https://www.npmjs.com/package/concat-stream

http.get({
    host: 'example.com', 
    port: 80, 
    path: '/hello.js'
  }, 
  function(res) {
    res.setEncoding('utf8');
    res.pipe(concat({ encoding: 'string' }, function(remoteSrc) {
      vm.runInThisContext(remoteSrc, 'remote_modules/hello.js');
    }));
});

IMO,在没有其他选择的情况下,在服务器应用程序运行时内部执行远程代码可能是合理的。并且仅当您信任远程服务和之间的网络时。



 类似资料:
  • 问题内容: 我使用node.js和socket.io。 我的应用程序在端口3000上运行。该应用程序从以下网址启动: **mydomain.com :3000/ ** 我想从 **mydomain.com** 运行该应用程序-我想从url中删除端口。 在哪里以及如何设置此设置? 问题答案: 查找您的呼叫并将端口从更改为。不要忘记,您必须运行具有该功能的程序(有关详细信息,请参阅),以便绑定到Lin

  • 问题内容: 我想对此进行网址编码: 我需要为此下载一个模块吗?我已经有了请求模块。 问题答案: 您可以使用JavaScript的:

  • 问题内容: 我是nodejs的新手,正在尝试设置一个服务器,在该服务器上我可以从映像中获取exif信息。我的图片在S3上,因此我希望能够仅将s3 url作为参数传递并从中获取图片。 我正在使用下面的ExifImage项目来获取exif信息并根据其文档进行操作: “除了在文件系统中提供图像的文件名,您还可以将缓冲区传递给ExifImage。” 如何将图像从URL加载到节点的缓冲区中,以便将其传递给E

  • 我有一个按钮,它正在执行“访问我的页面”并向查询字符串添加筛选器。我的代码将该过滤器应用于网格,但用户可以删除/编辑该过滤器。因为他们可以看到网格中应用了什么过滤器,所以我想在显示页面时从查询字符串中删除。 它可能会混淆,如果在页面上和URL说最初是正确的,但是用户删除了这个过滤器,并在上应用了一个新的过滤器,但是查询字符串仍然是.网格可以处理更改过滤器,而不需要后退。 我该怎么做?如果无法删除/

  • 问题内容: 我想验证以下类型的URL: 使用单个正则表达式,可以实现吗?如果是这样,请共享一个JavaScript解决方案。 请注意,我只希望底层协议为HTTP或HTTPS。而且,当前的主要问题是如何使用JavaScript中的一个正则表达式来映射所有这三种模式?不必检查页面是否处于活动状态。如果用户输入的值与上面列出的三种情况中的任何一种匹配,则如果不匹配,则应返回。 问题答案: 这有点hack

  • 问题内容: 如何从静态页面的网址中删除? 另外,我需要将任何网址重定向到没有该网址的网址。(即到)。 问题答案: 感谢您的答复。我已经解决了我的问题。假设我的页面在下,则适用以下.htaccess 规则。