跳到主要内容

Node.js 入门

准备与生成

sdk/ 目录进行依赖安装与(可选)基于后端的 SDK 生成:

cd sdk
npm install
BASE_URL=http://localhost:8080 npm run generate
npm run build

若未提供 BASE_URL,生成器将回退到 doc/schemas/openapi.yamlx-entities。详细说明见 sdk/typescript/examples/node/README.md

运行示例

cd sdk
npm run generate
npm run build
BASE_URL=http://localhost:8080 npm run example:node

示例脚本会访问 /metadata/entities/data 相关端点,控制台输出 CRUD 结果。

代码要点(节选)

以下片段来自 sdk/typescript/examples/node/index.js,展示通用 CRUD 操作:

const token = await fetchToken();
const ctx = { token, tenantId: process.env.TENANT_ID || '07c5b6ff', baseURL: process.env.BASE_URL || 'http://localhost:8080' };
const entity = process.env.ENTITY_NAME || 'customers';
const pkField = process.env.PK_FIELD || 'id';

const lst = await list(entity, ctx, { limit: 10, offset: 0 });
const filtered = await listFiltered(entity, ctx, { limit: 10, offset: 0 });

const created = await create(entity, { name: 'RecordUser', email: 'record.user@example.com', age: 25 }, ctx);
const createdOne = created[0] || null;

if (createdOne && createdOne[pkField] != null) {
const idv = createdOne[pkField];
const byId = await getById(entity, pkField, idv, ctx);
const updated = await updateById(entity, pkField, idv, { email: 'record.user+updated@example.com' }, ctx);
const deleted = await deleteById(entity, pkField, idv, ctx);
}

const updatedWhere = await updateWhere(entity, { op: 'and', conditions: [{ field: 'email', op: 'like', value: '%example.com' }] }, { age: 27 }, ctx);
const deletedWhere = await deleteWhere(entity, { op: 'and', conditions: [{ field: 'name', op: 'like', value: '%TempUser' }] }, ctx);

const upserted = await upsert(entity, ['email'], { name: 'RecordUpsert', email: 'record.upsert@example.com', age: 31 }, ctx);

如需对接真实后端,确保 KC_*TENANT_IDBASE_URL 正确配置。