# 自定义代码(云函数)
在自定义连接器中使用自定义代码能力,可以方便开发者实现不同的业务场景。开发者可以通过 自定义代码 中内置的 API 或 npm 包调用外部 HTTP 服务、微搭数据模型、自定义连接器或云开发云函数。
# 自定义代码
自定义代码是一种运行在服务端的 NodeJS 代码,底层是云开发云函数。以下是一个自定义代码的主要构成:
/**
* 可以在这里引用内置 NPM 包,例如:
**/
const fetch = require('node-fetch');
/**
* 在这个函数体内可以实现业务逻辑
**/
module.exports = async function (params, context) {
// params 即为入参定义的结构
// context 为平台内置对象,包含了内置的 API
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
_id: 123456
};
};
# 使用场景示例
# 发起 HTTP 请求
开发者可以使用 node-fetch
库来发起 HTTP 请求。具体可以参见 node-fetch 使用文档。
const fetch = require('node-fetch');
module.exports = async function (params, context) {
const response = await fetch('https://reqres.in/api/users');
const result = await response.json();
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
_id: '123456'
};
};
# 数据模型
开发者可以使用 context.callModel
方法来操作数据模型:
module.exports = async function (params, context) {
const result = await context.callModel({
name: '数据模型标识',
methodName: '方法标识',
params: {}, // 方法入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
_id: '123456',
};
};
# 连接器/自定义连接器
开发者可以使用 context.callConnector
来调用连接器或自定义连接器方法:
module.exports = async function (params, context) {
const result = await context.callConnector({
name: '连接器/自定义连接器标识',
methodName: '方法标识',
params: {}, // 方法入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
_id: '123456'
};
};
# 云开发云函数
开发者可以使用 context.app.callFunction
来调用同环境下的云开发云函数:
module.exports = async function (params, context) {
const result = await context.app.callFunction({
name: '云开发云函数名称',
params: {}, // 方法入参
});
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
_id: 123456
};
};
# 云开发数据库
开发者可以使用 context.database
来操作 云开发数据库,查看 云开发数据库 API。
module.exports = async function (params, context) {
const result = await context.database.collection('数据库集合名称').get();
// 在这里返回这个方法的结果,需要与出参定义的结构映射
return {
_id: 123456
};
};
注意:
此方法只能操作微搭云开发环境下的数据库,无法跨环境操作数据库。