@4djs/client 中文文档教程

发布于 4年前 浏览 27 项目主页 更新于 3年前

@4djs/client

4D 基础

How to use

Create a client

// Import the Client contructor from the module
const { Client } = require('@4djs/client');

// Create a client instance
const c = new m.Client(
  'http://localhost/rest', {
    user: 'admin',
    pass: 'admin'
  },
  { ctx: { req, res } },
);

// Get the catalog from client
const { ds } = await c.getCatalog();

Querying a table

的 NodeJS 连接器假设我们有一个目录,其中包含一个名为 Employee 的 DataClass。

运行此查询:

const collection = await ds.Employee.query('firstname == :1', 'Employee');

查找名字为 Employee 的员工。

Requests chaining

NodeJS 客户端允许请求链接。 例如,如果您运行此请求:

const array = await ds.Employee
  .query('firstname == :1', 'Employee')
  .orderBy('firstname asc')
  .skip(20).limit(5)
  .toArray('ID, firstname, lastname, company.name');

它将:

  • Sort the result in ascending order by firstname
  • Skip 20 entities
  • Limit the result to 5 entities
  • Converts the result to an array
  • Selects the specified attributes

为了优化性能,客户端将在客户端 (NodeJS) 中准备请求,并且只向 4D 发送一个请求。

Create entity

创建实体非常简单:

const entity = new ds.Employee({ firstname: 'Employee' });
await entity.save();

execute 4D methods

运行 DataClass 方法:

const result = await ds.Employee.dataclassMethod('param');

这就是我们如何执行 entity method

const entity = await ds.Employee.find('ID = :1', 10108, {
  $attributes: 'ID',
});
const result = await entity.getFullName();

在上面的例子中:

  • We retrieve an employee having the ID 10108 and we select only its ID attribute
  • We execute the entity method named getFullName

working with the related Entity/Entities

const entity = await ds.Employee.find('ID = :1', 10108);
const employer = entity.employer;
await employer.refresh();

在上面的例子中:

  • We retrieve an employee having the ID 10108 and we select only its ID attribute
  • We get the related entity/entities attribute (we get an instance of Employee / EmployeeCollection)
  • We load the related entity/entities from database

Compiling the typescript code

npm i # Will install the NodeJS dependencies
npm run build # Will transpile the code into javascript code

另一个选项是运行这个命令

npm run dev

这个命令将观察 typescript 的变化,然后将代码转换为 javascript

@4djs/client

A NodeJS connector for 4D bases

How to use

Create a client

// Import the Client contructor from the module
const { Client } = require('@4djs/client');

// Create a client instance
const c = new m.Client(
  'http://localhost/rest', {
    user: 'admin',
    pass: 'admin'
  },
  { ctx: { req, res } },
);

// Get the catalog from client
const { ds } = await c.getCatalog();

Querying a table

Suppose that we have a catalog containing a DataClass named Employee.

Running this Query:

const collection = await ds.Employee.query('firstname == :1', 'Employee');

Looks for employees having Employee as a firstname.

Requests chaining

The NodeJS Client allows request chaining. As an example, if you run this request:

const array = await ds.Employee
  .query('firstname == :1', 'Employee')
  .orderBy('firstname asc')
  .skip(20).limit(5)
  .toArray('ID, firstname, lastname, company.name');

It will:

  • Sort the result in ascending order by firstname
  • Skip 20 entities
  • Limit the result to 5 entities
  • Converts the result to an array
  • Selects the specified attributes

To optimize performance, the client will prepare the request in the client side (NodeJS), and sends only one request to 4D.

Create entity

Creating an entity is as simple as:

const entity = new ds.Employee({ firstname: 'Employee' });
await entity.save();

execute 4D methods

To run a DataClass method:

const result = await ds.Employee.dataclassMethod('param');

And this is how we can execute an entity method

const entity = await ds.Employee.find('ID = :1', 10108, {
  $attributes: 'ID',
});
const result = await entity.getFullName();

In the example above:

  • We retrieve an employee having the ID 10108 and we select only its ID attribute
  • We execute the entity method named getFullName

working with the related Entity/Entities

const entity = await ds.Employee.find('ID = :1', 10108);
const employer = entity.employer;
await employer.refresh();

In the example above :

  • We retrieve an employee having the ID 10108 and we select only its ID attribute
  • We get the related entity/entities attribute (we get an instance of Employee / EmployeeCollection)
  • We load the related entity/entities from database

Compiling the typescript code

npm i # Will install the NodeJS dependencies
npm run build # Will transpile the code into javascript code

Another option is to run this command

npm run dev

This command will watch the typescript changes, then it will transpile the code to javascript

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文