Motor Node.js
O código JavaScript de um bot pode ser executado em um de dois modos. Selecione o modo nas configurações do motor NodeJS do bot. O interruptor Use extended NodeJS engine alterna entre o modo simples e o estendido.
Modo simples
O modo simples é o modo leve padrão. As funções JavaScript são executadas de forma síncrona no ambiente incorporado.
Defina funções normais e retorne o resultado diretamente:
function collectData(params) {
return { name: params.name };
}Não use async, await nem APIs assíncronas que retornem Promises neste modo. A função é chamada de forma síncrona, portanto uma Promise não será aguardada.
Modo Node.js estendido
Ative o modo estendido com Use extended NodeJS engine. O editor package.json dependencies será exibido para que você declare os pacotes npm necessários:
{
"dependencies": {
"node-fetch": "^3.3.2"
}
}As dependências são instaladas para o bot e o código é executado no motor Node.js isolado. Este modo permite módulos Node.js (require e imports) e operações assíncronas, como solicitações de rede.
As funções executadas pelo motor estendido precisam ser compatíveis com Promises. Declare-as como async quando aguardarem operações assíncronas:
async function collectData(params) {
const response = await fetch("https://example.com/customer/" + params.id);
const customer = await response.json();
return { name: customer.name };
}Isso se aplica às funções de prompt/pré-processamento, ferramentas e manipuladores de ferramentas. Um valor síncrono causa um erro, pois o motor exige uma Promise.
Limites de recursos
O motor Node.js pode usar até 250 MB de memória e executar por no máximo 10 segundos por execução. Esses limites podem ser ajustados dentro do intervalo permitido nas configurações do motor NodeJS.
Use o modo simples para transformações síncronas e o modo estendido quando precisar de dependências npm, imports ou código assíncrono.