Moteur Node.js
Le code JavaScript d’un bot peut s’exécuter dans l’un de deux modes. Sélectionnez le mode dans les paramètres du moteur NodeJS du bot. Le bouton Use extended NodeJS engine permet de passer du mode simple au mode étendu.
Mode simple
Le mode simple est le mode léger par défaut. Les fonctions JavaScript sont exécutées de manière synchrone dans le runtime intégré.
Définissez des fonctions classiques et retournez directement leur résultat :
function collectData(params) {
return { name: params.name };
}N’utilisez pas async, await ni d’API asynchrone renvoyant des Promises dans ce mode. La fonction est appelée de manière synchrone et une Promise n’est donc pas attendue.
Mode Node.js étendu
Activez le mode étendu avec Use extended NodeJS engine. L’éditeur package.json dependencies apparaît alors pour déclarer les paquets npm nécessaires :
{
"dependencies": {
"node-fetch": "^3.3.2"
}
}Les dépendances sont installées pour le bot et le code s’exécute dans le moteur Node.js isolé. Ce mode prend en charge les modules Node.js (require et imports) et les opérations asynchrones, comme les requêtes réseau.
Les fonctions exécutées par le moteur étendu doivent être compatibles avec les Promises. Déclarez-les avec async lorsqu’elles attendent une opération asynchrone :
async function collectData(params) {
const response = await fetch("https://example.com/customer/" + params.id);
const customer = await response.json();
return { name: customer.name };
}Cela s’applique aux fonctions de prompt/prétraitement, aux outils et à leurs gestionnaires. Une valeur de retour synchrone provoque une erreur, car le moteur exige une Promise.
Limites de ressources
Le moteur Node.js peut utiliser jusqu’à 250 Mo de mémoire et s’exécuter pendant 10 secondes maximum par exécution. Ces limites peuvent être ajustées dans la plage autorisée depuis les paramètres du moteur NodeJS.
Utilisez le mode simple pour les transformations synchrones et le mode étendu si le bot nécessite des dépendances npm, des imports ou du code asynchrone.