手机版 欢迎访问魄力云云市场资讯网站

当前位置:主页 > 云虚拟主机 >

云主机_数据库server_优惠券

时间:2021-06-12 02:21:18|来源:魄力云|编辑:魄力云|点击:

最近,我正在开发一个NodeJS应用程序,运行在sapcloud平台cloudfoundry上。在这个应用程序中,我必须从另一个服务中读取数据,对数据做一些处理,并将其作为一个简单的web服务再次公开。在这个服务之上,我创建了一个UI5应用程序,它使用这个服务来可视化数据。

你可能想知道为什么我要在两者之间放置一个NodeJS应用程序。我这样做的原因如下:

数据来自另一个系统的API,有些部分应该受到保护,不受最终用户的影响在显示数据之前,我还需要应用一些操作,大数据是数据,我将这个逻辑放在NodeJS中,这样我就可以保持UI的简单和干净这使我能够完全控制最终用户可以通过我提供的API访问什么,而不是它背后系统的完整API

为了访问其他外部服务,我使用了目标服务。此服务可帮助您将所有连接存储在SAP云平台的中心位置。它允许您为不同的SCP帐户配置不同的环境(DEV、ACC、PRD…),但也可以在不接触代码的情况下更改配置。

有很多文档和博客介绍如何使用不同语言的目标服务,企业应用中心,如何与Approver一起使用,如何在UI5、CAP中使用,在NodeJS中…但是由于某种原因,我找不到任何关于如何在本地测试NodeJS应用程序的文档。可能是我没看对地方或者忽略了什么。最后,我无意中在某个GitHub项目上找到了解决方案…我想节省您搜索和共享我的解决方案的时间。

为了解释这个问题,我将创建一个新的NodeJS应用程序。我将带您从头开始完成每一步。

首先打开项目文件夹中的命令行界面。通过在CLI

npm init

中运行"npm init"创建新的NodeJS应用程序回答所有问题:

我们需要安装以下库,以便在NodeJS中构建API并调用其他/外部服务:

Express这将使应用程序充当API请求和请求承诺用于调用其他API

运行以下命令:

npm i express request request promise

我们还需要从sap安装sap xsenv库。这将用于使用目标服务。

运行以下命令:

npm i@sap/xsenv

向包.json. 这将由CloudFoundry在部署应用程序以启动应用程序时执行。在脚本中,我运行NodeJS中的javascript文件:

包。如果您正确地遵循了所有步骤,json文件应该是这样的:

此时,启动脚本将无法工作。我们需要创造索引.js并添加以下代码:

⇒此代码将从另一个服务获取数据,并使用SCP CF目的地服务通过NodeJS Express服务将其公开。

⇒我不打算详细解释此代码。它来自Marius Obert的博客,他已经解释了代码:https://blogs.sap.com/2018/10/08/using-the-destination-service-in-the-cloud-foundry-environment/

这在SCP CF上运行得非常好。但是当您在本地运行它时,它无法找到您的目的地:

正如本博客前面提到的,它不是解决这个问题是件大事。但由于我无法很容易地找到一个文件化的解决方案,我认为仍然值得分享如何解决这个问题。

作为旁注,云服务器服务好,您可能认为这可以通过使用Approver来解决。在这种情况下,我希望在NodeJS应用程序中使用目标服务,而不是公开外部服务。在审批者的配置中定义一个路由将暴露完整的外部服务。

请按照以下步骤解决此问题:

1。创建您的外部服务目的地

创建您的目的地

2。创建目标实例

a。您可以通过SCP驾驶舱

转到您的共享空间->服务市场

选择实例

单击新建实例并按照向导

b进行操作。或者通过使用命令:

使用SCP驾驶舱或CF CLI都将创建目标服务,该服务将在系统的服务实例中可见目的地设备:

3。在SCP驾驶舱中获取目标实例

a.的VCAP详细信息(从上一步创建的目标实例开始)

b.通过命令行

4。XSUAA服务

cf create service XSUAA application my uaa service

cf create service key my uaa service my uaa service key

cf service key my uaa service my uaa service key

5也一样。创建文件默认值-环境.json并在其中添加VCAP详细信息。在"凭证"部分填写每个服务的服务密钥。这将用于在本地运行应用程序时获取所用服务的所有详细信息。

6。只有文件是不够的。需要在本地加载到NodeJS应用程序中,在CF中运行时使用绑定服务,在代码中添加以下行:

运行"node index"再次测试:

现在可以在本地测试你的应用程序了!

你可能也想知道这些应用程序在CloudFoundry中是否有效。在部署之前,您需要添加舱单.yaml归档并定义所使用的服务。在我们的示例中,我们使用xsuaa和目标服务。xsuaa用于访问目的地服务。

创建舱单.yaml这样:

现在应用程序可以通过以下命令部署到CF:

CF push dest demo nodejs–random route

Result in SCP:

Full project:https://github.com/lemaiwo/SCP-CF-NodeJS-Example

您也可以考虑使用云应用程序编程模型。使用CAP,您将能够将API的结构定义为ODataV4服务。

我使用CAP做的完全相同的示例:

https://github.com/lemaiwo/SCP-CF-CAP-NodeJS-Example

使用CAP时,仍需要配置默认值-环境.json. 使用CAP时最大的区别是不需要使用"loadEnv"函数。这是由CAP框架处理的。

不需要:

在CAP的例子中,我还使用了另一个解决方案来调用外部API。我使用了由我的前同事创建的cfaxios库。非常感谢约阿希姆·范·普拉特的这一次!

https://blogs.sap.com/2019/11/13/consuming-destinations-in-cloud-foundry-using-axios-in-a-nodejs-application/

如果您想进入下一步并设置身份验证,可以按照以下步骤进行:

https://cap.cloud.sap/docs/node.js/authentication

您也可以使用MTA部署到SCP CF,返利app可信吗,遵循以下步骤:https://cap.cloud.sap/docs/advanced/deploy-to-cloud

,爱回扣返现网

云主机服务商 Ucloud云计算 移动云数据 云存储服务器 Ucloud云主机 云计算提供商 阿里数据库 服务器租用 云储存服务器 Web云服务器 ucloud云数据库 独享云主机 云服务器服务商 海外云存储 云服务器主机 云计算解决方案 国内云存储 数据库云平台

Copyright © 2002-2020 魄力云 版权所有

备案号:豫ICP备56298345号