软件包@ sap/cds for Node.js

2020-08-17 13:30发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

我正在使用Node.js/Express在Cloud Platform(CF)上构建应用程序。 这个东西有一个/db模块,其中包含一个实体定义(books-model.cds)和/srv,它在server.js上运行一个node.js应用,该应用应该读取在db模块上声明的数据。

根据此文档软件包@ sap/cds应该可以使用以下语句帮助我做到这一点:

 cds.importEntities([
     {$ entity:" xsds.test.cds :: ds_test.e1"},
     {$ entity:" xsds.test.cds :: ds_test.e2",
       $ fields:{
           一个:{$ association:" xsds.test.cds :: ds_test.e2",
                $ viaBacklink:" b"}
       }
     }
 ], 打回来);
 函数回调(错误,实体){
     var E1 =实体[" xsds.test.cds :: ds_test.e1"];
     var E2 =实体[" xsds.test.cds :: ds_test.e2"];
    //...
 }
 

事实是,@ sap/cds模块v2.10似乎不认为它对此负责。 此版本仅处理.cds文件的构建和部署(到hdbcds等)。

在该模块的旧版本中,在进入npm存储库之前,它被称为" sap-cds",并且确实提供了此.importEntity方法。

有人知道 npm.sap.com ,甚至存在吗?

到目前为止,我已经可以使用@ sap/xsenv和@ sap/hdbext与数据库进行交互。

导入xsenv = require('@ sap/xsenv')import hdbext = require('@ sap/hdbext')
 const services = xsenv.getServices({hana:'plcockpit-hdi'})

 express.use('/',hdbext.middleware(services.hana))
 express.get('/',(req,res)=> {
         req.db.exec('SELECT * FROM \" com.acme :: MyLibrary.Books \"',函数(错误,行){
             res.json({
                 结果:JSON.stringify(rows [0])
             })
         })
     })
 

(代码是原始代码的简化版本)

尽管它可以工作,但我想知道是否还有更多的"高级" api与CDS层进行交互。

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,

我正在使用Node.js/Express在Cloud Platform(CF)上构建应用程序。 这个东西有一个/db模块,其中包含一个实体定义(books-model.cds)和/srv,它在server.js上运行一个node.js应用,该应用应该读取在db模块上声明的数据。

根据此文档软件包@ sap/cds应该可以使用以下语句帮助我做到这一点:

 cds.importEntities([
     {$ entity:" xsds.test.cds :: ds_test.e1"},
     {$ entity:" xsds.test.cds :: ds_test.e2",
       $ fields:{
           一个:{$ association:" xsds.test.cds :: ds_test.e2",
                $ viaBacklink:" b"}
       }
     }
 ], 打回来);
 函数回调(错误,实体){
     var E1 =实体[" xsds.test.cds :: ds_test.e1"];
     var E2 =实体[" xsds.test.cds :: ds_test.e2"];
    //...
 }
 

事实是,@ sap/cds模块v2.10似乎不认为它对此负责。 此版本仅处理.cds文件的构建和部署(到hdbcds等)。

在该模块的旧版本中,在进入npm存储库之前,它被称为" sap-cds",并且确实提供了此.importEntity方法。

有人知道 npm.sap.com ,甚至存在吗?

到目前为止,我已经可以使用@ sap/xsenv和@ sap/hdbext与数据库进行交互。

导入xsenv = require('@ sap/xsenv')import hdbext = require('@ sap/hdbext')
 const services = xsenv.getServices({hana:'plcockpit-hdi'})

 express.use('/',hdbext.middleware(services.hana))
 express.get('/',(req,res)=> {
         req.db.exec('SELECT * FROM \" com.acme :: MyLibrary.Books \"',函数(错误,行){
             res.json({
                 结果:JSON.stringify(rows [0])
             })
         })
     })
 

(代码是原始代码的简化版本)

尽管它可以工作,但我想知道是否还有更多的"高级" api与CDS层进行交互。

谢谢

10条回答
DafaDDDa
1楼-- · 2020-08-17 14:17

你好,尤利西斯,

我正在像您一样在CF环境中做类似的事情。

我引用的是以下文档。

SAP云应用程序编程模型-Javascript API

我想在我的node.js模块中连接到CF处的HANA数据库,但不能。

 const cds = require('@ sap/cds');

//文档中的示例
 const srv =等待cds.connect.to('db');
 const {书籍,作者} = srv.entities('my.booskhop'); //未定义
 const model = srv.model; //未定义

你有什么主意吗?

谢谢

李在贤。

CJones
2楼-- · 2020-08-17 14:13

你好,

我有一个项目,该项目使用部署在Cloud Floundry上的Node.js和CDS,是使用WebIDE开发的,在尝试使用" @ sap/cds"包中的ORM之后,我一直收到此错误。

 sh:1:node-pre-gyp:权限被拒绝
 npm ERR! 代码ELIFECYCLE
 npm ERR! 埃尔诺126
 npm ERR!  sqlite3@4.1.0 install:`node-pre-gyp install --fallback-to-build`
 npm ERR! 退出状态126
 npm ERR!
 npm ERR! 在sqlite3@4.1.0安装脚本上失败。
 npm ERR!  npm可能不是问题。 上面可能还有其他日志记录输出。
 npm ERR! 可以在以下位置找到此运行的完整日志:
 npm ERR! /home/vcap/.npm/_logs/2019-10-07T14_14_09_536Z-debug.log
        [31; 1m ** ERROR ** [0m无法建立依赖关系:退出状态126
 无法编译Droplet:无法运行所有供应脚本:退出状态14
 退出状态223 
95年老男孩
3楼-- · 2020-08-17 13:54

这可能会对某人有所帮助。

我通过从node_modules @ sap/cds/server.js进行简单复制,成功获得了帽子的express.js版本。 从那里您可以适应您的需求。 例如,我添加了静态附加内容。

xfwsx85
4楼-- · 2020-08-17 14:04

嗨Daniele,

否,问题仍然存在。 解决方法是使用@ sap/xsenv和@ sap/hdbext直接从数据库读取。

我找不到关于它的官方教程,但是您可以从

空代码
5楼-- · 2020-08-17 13:56

嗨,尤利西斯,

您解决了这个问题吗? 我面临着同样的问题,基本上在文档化后我无法使用CDS api。

Tks。

Daniele。

huskylover
6楼-- · 2020-08-17 14:13

Hi Onu,

我不确定问题是什么,但似乎您对使用" SYSTEM"模式的表感到困惑。

我认为这个想法是在mta.yaml上配置hdi-container(结帐 https://developers.sap.com/tutorials/xsa-hdi-module.html 第1步:创建HDB模块)。 部署后,它将为您的应用程序生成特定的架构。

希望这会有所帮助。

PS .:您的问题虽然有趣,但与原始问题并不直接相关。 我建议下次再创建一个新主题,以便您获得更多的知名度,而其他具有更多专业知识的人也可以大放光彩=)

祝您旅途愉快!

一周热门 更多>