首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xsjs $.hdb.getConnection未定义

xsjs $.hdb.getConnection未定义
EN

Stack Overflow用户
提问于 2018-06-15 20:33:01
回答 1查看 1.4K关注 0票数 0

我试着做一些练习,比如:https://blogs.sap.com/2016/03/28/developing-with-xs-advanced-add-business-logic-with-nodejs/

面对这个问题,我(真的)到处发帖寻求帮助,我没有收到任何关于它的指导,希望在这里有人帮助。

在这个练习中,有以下代码片段:

代码语言:javascript
复制
function saveCountry(country){
   var conn = $.hdb.getConnetion();
   var output = ...
}

无论如何,我得到了一个错误:500不能读取未定义的的属性'getConnection‘

此外,我尝试使用vim、节点和xs从终端生成nodejs,如以下文档所示:https://help.sap.com/viewer/4505d0bdaf4948449b7f7379d24d0f0d/2.0.02/en-US/32392948cb1844b2a6ed22ad641d4461.html

在该文档的第3项中,有以下代码片段:

代码语言:javascript
复制
var express = require('express');
var app = express();

var xsenv = require('@sap/xsenv');
var services = xsenv.getServices({ hana:'myhana' });
// also tried this ways: 
//        xsenv.getServices({hana: {tag:'myhana'}});
//        xsenv.getServices({hana: {tag:'hana'}});

app.get('/', function (req, res) {
  res.send('Using HANA ' + services.hana.host + ':' + services.hana.port);
});

var port = process.env.PORT || 3000;
app.listen(port, function () {
  console.log('myapp listening on port ' + port);
});

现在,创建一个服务:

代码语言:javascript
复制
xs create-service hana hdi-shared myhana

此外,还要验证服务是否存在:

代码语言:javascript
复制
xs s

然后,用以下方式运行nodejs-app:

代码语言:javascript
复制
xs push

和结果:

代码语言:javascript
复制
**Error No service matches hana**

那么,在简历中,为了使用$.hdb.getConnetion();我遗漏了什么?当我从webIDE创建项目时,我单击了enable选项,这样,我就有了这个var xsjs = require('@sap/ xsjs ');在另一个练习中,“没有服务匹配”是怎么回事,我清楚地看到了它!

这是已安装的版本和方框规范:

代码语言:javascript
复制
HDB version info:
  version:             2.00.030.00.1522210459
  branch:              hanaws
  machine config:      linuxx86_64
  git hash:            bb2ff6b25b8eab5ab382c170a43dc95ae6ce298f
  git merge time:      2018-03-28 06:14:19
  weekstone:           2018.13.0
  cloud edition:       0000.00.00
  compile date:        2018-03-28 06:19:13
  compile host:        ld2221
  compile type:        rel

RedHat 7.5

非常感谢你的帮助。

xOCh

EN

回答 1

Stack Overflow用户

发布于 2018-06-16 18:40:42

对于第一个片段,我必须警告,对于您使用的HANA版本,不再支持使用Express的XSJS。

但是,在第一个和第二个错误中,您似乎忽略了节点模块和数据库模块之间的依赖关系,或者HDI容器没有绑定到您的js应用程序。

例如,如果您正在为HANA使用Web,则可以在mta.yaml文件中设置依赖项:

代码语言:javascript
复制
modules:
  - name: db
    type: hdb
    path: db
    requires:
      - name: hdi_db
  - name: js
    type: nodejs
    path: js
    provides:
      - name: js_api
        properties:
          url: '${default-url}'
    requires:
      - name: hdi_db
      - name: db 
resources:
  - name: hdi_db
    properties:
      hdi-container-name: '${service-name}'
    type: com.sap.xs.hdi-container

这里有一个例子:https://www.sap.com/developer/tutorials/xsa-xsjs-xsodata.html

如果这样,您可以检查CLI中的xs命令绑定(切换到与xs目标一起使用的空间,例如: xs目标-s开发)。

如果您只看到数据库服务绑定应用程序下的di-builder,而没有看到js模块,则它们不绑定。您可以使用命令xs将js应用程序绑定到db服务,例如:

代码语言:javascript
复制
xs bs XSA_DEV-3blurblurb-test-js XSA_DEV-3bkurblurb-test-hdi_db

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50882324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档