0到1手搓基于Node的CAP应用

一、开发环境

1、Nodejs

安装Nodejs,版本16+。

2、cds

在命令行中执行以下命令,安装cds开发工具。

npm i -g @sap/cds-dk

执行命令cds -v查看安装情况。
在这里插入图片描述

3、VScode

安装VSCODE

4、VScode扩展程序

查找SAP CDS Language Support,安装。
在这里插入图片描述

5、cf

下载cf安装包并安装。
在这里插入图片描述

6、mbt

npm i -g mbt

二、创建项目

1、创建项目

命令行执行命令,cds init cap-demo
在这里插入图片描述
在这里插入图片描述

2、安装依赖

在cap-demo目录下,执行npm i
在这里插入图片描述

3、运行

执行cds watch运行项目。
在这里插入图片描述

三、添加逻辑

1、定义model

db目录下创建model.cds文件,并添加以下代码,定义三个实体。

namespace my.demo;

using {managed} from '@sap/cds/common';

entity Employees {
    key ID     : Integer;
        name   : localized String;
        depart : Association to Departs;
        tasks  : Integer;
}

entity Departs {
    key ID        : Integer;
        name      : String;
        employees : Association to many Employees
                        on employees.depart = $self;
}

entity Orders : managed {
    key ID          : UUID;
        description : String;
        employee    : Association to Employees;
}

2、定义service

srv目录下创建service.cds,添加以下代码,暴露服务接口。

using my.demo as my from '../db/model';

service DemoService {
  entity Employees as projection on my.Employees;
  entity Departs as projection on my.Departs;
  entity Orders as projection on my.Orders;
}

3、预览

代码添加以后,cds会自动刷新服务,接口已经在本地运行。
在这里插入图片描述
浏览器访问http://localhost:4004
在这里插入图片描述

四、持久化

1、配置sqlite3

package.json中,添加cds节点。

"cds": {
    "requires": {
      "db": {
        "kind": "sqlite",
        "credentials": { "url": "db/demo.sqlite" }
      }
    }
  }

在这里插入图片描述

2、发布数据库

根目录下执行命令,发布demo数据库。

cds deploy

##

3、查看数据库

根目录下执行命令,查看demo数据库。

sqlite3 db/my-bookshop.db -cmd .dump

在这里插入图片描述

4、添加数据

根据model结构,是用Postman等工具添加数据。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、添加逻辑

在srv目录下创建service.js文件,添加以下代码。

module.exports = (srv) => {

    const {Employees} = cds.entities ('my.demo');
  
    srv.before('CREATE', 'Orders', async (req) => {
        const order = req.data
        const tx = cds.transaction(req);
        
        const employee = await tx.run(SELECT.one.from(Employees).where({ID: order.employee_ID}));
        if(!employee) {
            return req.error (404, "Employee does not exist!");
        }
        if(employee.tasks > 2) {
            return req.error (404, "Employee is busy!");
        }
        await tx.run (
            UPDATE (Employees)
            .set   ({ tasks: {'+=': 1}})
            .where ({ ID: order.employee_ID})
        );
        return req.info(200, "success");
    });
}

创建工单,并分配给指定员工,当员工未找到或者员工当前人物超过2个时报错。
在这里插入图片描述
在这里插入图片描述

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node-Red是一个开源的可视化编程工具,可以用于构建物联网应用程序。在工业物联网中,Node-Red可以作为网关应用程序的核心,处理设备数据、执行控制操作和与云平台通信。以下是基于Node-Red的工业物联网网关应用开发步骤: 1. 确定应用场景和需求:根据工业物联网应用需求,确定需要采集的设备数据、控制操作、通信协议和云平台接口等。 2. 确定硬件平台和设备接口:选择合适的硬件平台,如树莓派、Arduino等,确定设备接口,如GPIO、串口、I2C、SPI等。 3. 安装Node-Red:在硬件平台上安装Node-Red,可以使用官方提供的安装包或动安装。 4. 配置设备接口:在Node-Red中配置设备接口,使用相应的节点和插件进行设备数据采集和控制操作。 5. 配置通信协议和云平台接口:在Node-Red中配置通信协议和云平台接口,使用相应的节点和插件进行数据传输和处理。 6. 编写应用程序逻辑:使用Node-Red提供的可视化编程工具,编写应用程序逻辑,实现设备数据采集、控制操作和云平台通信。 7. 测试和调试:在硬件平台上进行测试和调试,确保应用程序正常运行。 8. 部署和运维:将应用程序部署到生产环境中,进行运维和维护,保证应用程序的稳定性和可靠性。 总之,基于Node-Red的工业物联网网关应用开发需要具备一定的硬件和软件技术基础,同时需要对工业物联网应用场景和需求有深入的了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值