【问题标题】:Nodejs library without nodejs没有nodejs的nodejs库
【发布时间】:2015-09-12 20:02:05
【问题描述】:

如何将 nodejs 库集成到我的非 nodejs 项目中? 我特别需要这个库: https://github.com/greenify/biojs-io-blast

【问题讨论】:

  • 这真的取决于包是否支持在浏览器中运行。如果是这样,那么您将执行相同的npm install packagename,然后使用 browserify 对其进行编译以获取单个文件。
  • 看看browserify
  • 或者如果你使用 webpack 作为构建/开发环境,那么你可以通过各种 npm 好东西来拉取......

标签: javascript node.js


【解决方案1】:

BioJS使用Browserify CDN自动生成单个JS文件供使用。要么包括

<script src="http://wzrd.in/bundle/biojs-io-blast@latest"></script>

在您的 html 中或通过此链接下载 JS 文件。

我们还有一个实时的 JS Bin 示例here

【讨论】:

  • 谢谢!但是这个例子不太好用……“blast object” null
  • 我尝试下载您的“独立”并加载到本地爆炸 xml 文件,但它返回 null。
  • 我更新了 JS Bin 链接。它现在应该可以工作了。感谢您发现:)
【解决方案2】:

要集成任何节点库,您可以使用包管理器 NPM https://www.npmjs.com/ 集成您的库,请执行以下操作

  1. 打开终端
  2. cd path/to/your/project_dir
  3. 键入此行

    npm install biojs-io-blast

【讨论】:

  • 感谢您发布此问题的答案!这个答案很短,但没有提供太多背景信息。请解释它背后的一些原因,它将对提问者和未来的读者变得更加有用。谢谢!
【解决方案3】:

这是更常见的用例。一些node.js libraby,我太喜欢它们了,我想在任何地方使用它。但是这个库,我看到的使用 node.js 的核心模块,比如fs。我不认为你可以在没有节点依赖的情况下使用它 ||节点二进制。但正如 Code Uniquely 或其他人所说,如果您使用 webpack 作为构建/开发。你可以试试,browserifyorBioJS

【讨论】:

    【解决方案4】:

    提供的node_module是一种xml解析器。您不能将 nodejs 库 (node_module) 添加到非 nodejs 程序。根据您使用的编程语言,您可以获取 Blast 的 xml 解析器。

    例如: 对于 PHP phpBlastXmlParser 和 对于javathis might helpfull

    【讨论】:

      【解决方案5】:

      是的,您可以使用发布者/订阅者模式和队列库(例如 RabbitMQ)来实现。

      在下面的示例中,作者使用每个平台的 RabbitMQ 客户端将 Python 脚本与 NodeJS 进行通信。

      https://github.com/osharim/Communicate-Python-with-NodeJS-through-RabbitMQ

      NodeJS 发送代码:

      var amqp       = require('amqp');
      var amqp_hacks = require('./amqp-hacks');
      
      var connection = amqp.createConnection({ host: "localhost", port: 5672 });
      
      connection.on('ready', function(){
          connection.publish('task_queue', 'Hello World!');
          console.log(" [x] Sent from nodeJS 'Hello World!'");
      
          amqp_hacks.safeEndConnection(connection);
      });
      

      然后,在 python 中接收:

      #!/usr/bin/env python
      import pika
      import time
      
      connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
      channel = connection.channel()
      
      channel.queue_declare(queue='task_queue', durable=True)
      
      
      #our callback
      def suscriber(ch,method , properties , body):
          print "[Y] received %r " % (body,)
          time.sleep( body.count('.') )
          print " [x] Done"
          ch.basic_ack(delivery_tag = method.delivery_tag)
      
      
      
      channel.basic_qos(prefetch_count=1)
      channel.basic_consume(suscriber, queue = 'task_queue')
      
      print ' [*] Waiting for messages from Python. To exit press CTRL+C'
      channel.start_consuming()
      

      【讨论】:

        猜你喜欢
        • 2015-10-02
        • 1970-01-01
        • 2017-07-18
        • 2015-03-14
        • 1970-01-01
        • 2022-01-15
        • 2020-11-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多