什么是正确的'要求'对于NodeJS消费者应用程序中的KCL?

时间:2017-07-12 01:05:35

标签: node.js amazon-web-services amazon-kinesis amazon-kcl

我正在阅读KCL(AWS的Kinesis客户端库)的文档,如果我正确理解它,我需要安装KCL本身(Java),然后安装我的NodeJS消费者应用程序将能够访问它。首先,这是正确的吗?

如果是这样,我对NodeJS和KCL之间的联系感到困惑。我在AWS示例代码中看到了这一行:

var kcl = require('../../..');

(见样本here

在NodeJS中,我常常看到以这种方式引用的JS文件,而不是目录。这似乎只是遍历文件系统3级别并停止。这是什么参考?这是与KCL的联系吗?我是否只需要确保我的KCL安装位于适合此require语句的相对路径上?

1 个答案:

答案 0 :(得分:1)

  

我需要安装KCL本身(Java),然后安装我的NodeJS使用者   应用程序将能够访问它。首先,这是正确的吗?

是的,这是正确的。
如果您安装 nodejs 的KCL并完全在 nodejs 中编写您的消费者应用程序,则由于MultiLangDaemon,您仍需要在系统上安装Java。请参阅文档here

  

我对NodeJS和KCL之间的联系感到困惑。

require被赋予文件夹的路径时,它会在其中查找index.js。如果有,它将使用它,如果没有,它将失败。

在您的示例中,kcl变量需要根目录中的index.js

  

我是否只需要确保我的KCL安装位于a   容纳此require语句的相对路径?

不,在现实世界的应用程序中,您require此模块通常会像var kcl = require('aws-kcl')那样gradlew assembleRelease,这是package.json

中给出的名称