这是对实时流录制内容的可搜索描述,淘客宝,特别是"使用qmacro进行SAP开发"系列中的"第9集-继续Northbreeze的数据检索"。视频录制中有直接指向特定亮点的链接。有关其他剧集注释的链接,请参阅该系列博客文章的"捕捉重播"部分。
这一集名为"继续为Northbreeze检索数据",于2019年3月6日(星期三)直播,长度约为一小时。YouTube上提供了视频流录制。
下面是一个简短的概要,以及指向特定亮点的链接-使用这些链接可以直接跳到录制中的特定感兴趣的地方,基于"hh:mm:ss"样式的时间戳。
简要概要
上周五第8集中,我们正在使用Axios和promises构建数据检索脚本。在本期节目中,我们将继续进行构建,然后将检索到的数据转换为CSV,以便通过CD deploy加载到数据库中。
链接到特定的亮点
00:02:20:从一些SAP内部跟踪公告开始!–Maidenhead–3月15日星期五–法兰克福–3月30日星期六–奥斯陆–8月17日星期六
00:03:00:发现CD的VS代码扩展的更新–从1.0.36到1.1.1.
00:04:50:查看SAP Developers YouTube频道,您一定要订阅该频道!
00:06:50:看看我们结束Northbreeze项目的地方,手机网站自助建站,看看我们在绕道使用"抓取"项目从原始Northwind服务中获取一些种子数据之前设置的模型和服务定义。
00:08:20:打开tmux会话并查看"抓取"项目的详细信息,特别提醒我们自己skipToken是如何工作的,以及我们在哪里保存了实体数据的本地副本,以便在开发脚本时为自己服务。
00:10:30:打开抓取.js剧本和我们要去的地方,在另一个tmux窗格中启动我们的本地HTTP服务器,为脚本提供本地数据。
00:16:55:在另一个tmux窗格中启动nodemon,在我们进行修改时监视并重新运行脚本。
00:18:00:在点链中插入另一个条目,查看每种类型有多少个实体,因此:
这向我们显示当然,我们在baseurl常量中硬编码了"Products",所以我们永远无法在这个配置中获得任何类别或供应商。
我们通过在常量中使用占位符来解决这个问题:
而且,即使数据的最小页数,我们仍然得到40个实体。这是因为,由于未知的原因,我在跳过标记的数量上加了1,就像这样:
我一辈子都不记得我为什么这么做了,这是不正确的。所以我们去掉了+1.
00:21:00:为了简化事情,我们创建了一个新的函数buildurl,它接受一个实体名和一个令牌计数,并构造了一个真正的URL用于Axios调用。这个函数包含baseurl常量的值,所以它可以是纯的。
00:21:50:JS中replace函数的优点是它的性能很好,(a)它不会改变源代码,(b)它产生一个新字符串,当然,我们可以使用它来链接一个进一步的调用来替换或对该字符串执行任何我们想要的操作。
00:23:39:通过这些更改,我们现在已经修复了我们所拥有的,并且可以看到返回的实体的正确数量:77个产品,29个供应商和8个类别。
00:24:15:看另一个包json2csv,大数据概念,它将把JSON转换成CSV,你猜到了。它是以命令行实用程序的形式出现的,并且有一个可以在JS脚本中使用的API。
00:25:38:现在,为了构建下一部分,我们将只关注类别,为此我们在点链中插入一个过滤器,因此:
在查看作为输出的内容时,我们注意到一张图片有一大堆数据属性–某种编码图像,我们不需要。在深入挖掘的过程中,我们还注意到,我们在实体(CD)中定义的属性与JSON中定义的属性不同,虚拟主机,因此我们必须转换它们(例如,我们在实体定义中有名称,但在Northwind源中的CategoryName是JSON)。
00:30:08:关于Chris在下一期直播节目中谈到函数式编程,我指出我们刚刚添加的过滤器有点难看,因为它是硬编码的,而且只在那里有用。理想情况下,我们想要做的是(部分地,无可否认地,探索一些函数编程方面)编写一些类似于:
的东西,因为这很容易理解,而且也是"固态的"。
00:30:50:为此,我们首先定义一个新的函数:
用这个我们现在可以说:
这是一个更好但不多的方法。但是我们正在走向一个微观的涅磐。
00:32:55:定义is函数,像这样:
我们现在只能定义这样的一个类别:
这实际上是部分应用is函数调用的结果,带有它想要的第一个参数;现在我们有了一个函数onlyCategories,它也需要一个参数,它相当于is的第二个参数。
然后我们可以做我们想做的事情,就是:
盯着它看一会儿。
00:36:01:安装json2csv并进行双重检查,npm list--depth=1,我们在这个项目(目录)中本地安装了什么包。
00:37:30:查看json2csv包文档中的示例3,它显示了我们如何在转换过程中匹配和重命名属性。
00:40:05:开始将json2csv包用于我们的脚本,特别是查看解构构造(从ES6)在这个例子中: