云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

企业网站_数据库ppt_评分榜

小七 141 0

简介

几周前,我们发布了一个新的代码示例–hana developer cli工具示例:https://github.com/SAP-samples/hana-developer-cli-tool-example。此示例旨在帮助学习如何构建以开发人员为中心的SAP HANA命令行工具,特别设计用于在非SAP工具(例如VS代码)中执行SAP HANA开发。虽然这是一个工具,通过从一个简单的命令行界面公开大量的管理和元数据检查功能,可以按原样帮助HANA开发;但在博客中,我想重点介绍它是如何构建的。这样,其他人就可以使用此示例作为构建任何通用节点.js基于命令行的接口,或者如何将这样的接口与HANA后端结合起来。

在我们开始分析和了解这个工具是如何构建的之前,对它的用途有一个大致的了解是很有帮助的。github回购是主要的解释来源,我不想在这里重复https://github.com/SAP-samples/hana-developer-cli-tool-example

但作为简短的解释,该工具允许开发人员与HANA DB进行交互,架构或HDI容器并执行操作,如查看表、视图、过程等中的元数据或实际内容

如果您想更详细地介绍该工具,我建议观看此视频:

或下载并安装该工具本身进行尝试。可直接从npm安装:

转动a节点.js应用到一个命令行界面工具

对于我们的第一个任务,我们想采取一个正常的节点.js并将其转换为可从命令行界面运行的优化程序。当然有很多节点.js应用程序可以通过node从命令行触发。但是,物联网+,我们需要一些可以作为自己的独立工具调用的东西,而不必将node指定为主命令。这样,我们也可以将自己的参数和选项传递给我们的命令。

为了检查这个起点,让我们创建一个新的节点.js应用程序首先使用npm init命令。

生成的是一个标准节点.js包.json这将运行索引.js默认情况下。但是我们想对包.json。我们将添加一个bin节。这将公开一个命名命令(在本例中,我们将使用clitest)并将其映射到JavaScript文件(./bin)/客户端.js在这种情况下)。

为了阅读更多关于包.json, 以下是文档:https://docs.npmjs.com/files/package.json\bin

我们需要的另一个特别功能是客户端.js文件来设置执行环境。这被称为佘浜线。因此,我们将从以下内容开始:

这两个特性的组合允许我们使用npm link命令(用于测试)或npm install-global(用于生产性使用)将指定的命令安装到路径中节点.js我们正在生成的命令可以从文件系统中的任何目录访问。如果我们正在构建一个可重用的实用程序,比如HANA开发人员工具,这当然是至关重要的。

命令行参数

我们现在有了一个可以工作的命令行工具,但是它有点有限。我们不想创建单独的节点.js每个命令的项目/包。对于hana cli,我们需要一个单一的入口点,但是能够在该上下文中调用多个命令,例如检查表、创建用户、查看日志等,但是,为什么要重新发明轮子,因为已经有一些优秀的模块可以很好地做到这一点。我探索了几种不同的选择,但最终还是选择了yargs模块:

https://github.com/yargs/yargs

Yargs功能强大,易于使用,最好的海盗主题!你必须喜欢一个不把自己看得太严重的项目:

要使用Yargs,淘客推广联盟,我们将它添加到我们的包.json。然后我们运行npm install使该包在本地进行测试。然后我们可以将其添加到客户端.js文件。我们将从简单的开始,只允许Yargs构建一个帮助命令和一些其他优秀的内置特性。

基本框架就绪后,我们现在可以开始添加自己的命令。我们将首先添加一个名为status的命令,该命令将通过控制台.log.

一个命令是一个更好的开始,但是我们也需要参数和选项来传递到我们的命令中。为此,我们可以使用命令的生成器函数来添加这些元素。argv输入到我们的命令事件处理程序中之后,淘客公众号,这些选项的值和值也将被传递到命令行中。

我们现在有了一个框架,允许我们定义命令的用户界面,轻松地捕获和处理输入,并且通过生成的帮助命令,它都是自文档化的。

缩放Yargs命令处理

我们的简单示例很适合构建学习简介,但对于hana cli,我们有50多个基本命令。我们当然不希望每个命令的所有事件回调处理程序都放在一个js文件中。对于真正的产品,我们使用了Yargs的一个特性,它允许将每个命令分解到其on JavaScript文件中。

https://github.com/SAP samples/hana developer cli tool example/blob/master/bin/cli.js#L26

对于这些JavaScript命令文件,我们只需导出相同的参数(如命令、别名等)和事件处理程序(如builder和handler),我们在客户端.js直接到Yargs.

https://github.com/SAP-samples/hana-developer-cli-tool-example/blob/master/bin/version.js