Node.js 入门
准备与生成
在 sdk/ 目录进行依赖安装与(可选)基于后端的 SDK 生成:
cd sdk
npm install
BASE_URL=http://localhost:8080 npm run generate
npm run build
若未提供 BASE_URL,生成器将回退到 doc/schemas/openapi.yaml 的 x-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_ID 与 BASE_URL 正确配置。