NEWS
Javascript: Probleme mit readdir : feature oder bug?
-
Ich habe alle Adapter von stable auf latest ge-updated.
Dabei ist mir aufgefallen, dass in Scripts das 'readdir' Fehler wirftconst fs = require('fs'); const util = require('util'); const my_readdir = util.promisify(fs.readdir); const searchDir = '/tmp'; async function FindFile(dir) { let rc = ''; //console.log('### '+dir); try { let files = []; files = await my_readdir(dir); for (let file of files) { let fullpath = dir + '/' + file; rc = fullpath; } } catch (e) { console.log(e); } finally { return rc; } } function execPromise(command) { return new Promise(function(resolve, reject) { exec(command, (error, stdout, stderr) => { if (error) { //console.log(stderr); reject(error); return; } resolve(stdout.trim()); }); }); } try { let result = FindFile(searchDir); //let result = await execPromise(`find ${searchDir} -type f `); log(result); } catch (e) { console.error(e.message); }
Es gibt die folgende log-Meldung:
javascript.0 2025-07-27 11:42:01.749 info script.js.Test.readdir: TypeError: Cannot read properties of undefined (reading 'ProtectFs') at readdir (/opt/iobroker/node_modules/iobroker.javascript/src/lib/protectFs.ts:625:14) at node:internal/util:438:7 at new Promise (<anonymous>) at readdir (node:internal/util:424:12) at FindFile (script.js.Test.readdir:114:23) at script.js.Test.readdir:142:18 at script.js.Test.readdir:152:3 at Script.runInContext (node:vm:149:12) at Script.runInNewContext (node:vm:154:17) at JavaScript.execute (/opt/iobroker/node_modules/iobroker.javascript/src/main.ts:2203:27)
Die Alternative mit exec funktioniert.
-
@ente34 sagte in Javascript: Probleme mit readdir : feature oder bug?:
Ich habe alle Adapter von stable auf latest ge-updated.
warum denn das?
Damit hast du jetzt überall Betaversionen, die jede für sich noch Bugs enthalten kann.Zu jedem Adapter gibt es daher Betatester Threads im Forum, oder Issuetracking auf Github
-
@homoran Alles klar, danke für den Hinweis!
-
@ente34 sagte in Javascript: Probleme mit readdir : feature oder bug?:
const my_readdir = util.promisify(fs.readdir);
Dafür gibt es eigentlich
fs/promises
. https://nodejs.org/api/fs.html#fspromisesreaddirpath-optionsIm Adapter wird
fs
vom node core überschrieben, damit man in manche Verzeichnisse nicht manuell schreibt (wieiobroker-data/files
). Mit einem einfachen Beispiel als Bug melden (bist ja Beta-Tester). -
@haus-automatisierung sagte in Javascript: Probleme mit readdir : feature oder bug?:
@ente34 sagte in Javascript: Probleme mit readdir : feature oder bug?:
const my_readdir = util.promisify(fs.readdir);
Dafür gibt es eigentlich
fs/promises
. https://nodejs.org/api/fs.html#fspromisesreaddirpath-optionsIm Adapter wird
fs
vom node core überschrieben, damit man in manche Verzeichnisse nicht manuell schreibt (wieiobroker-data/files
). Mit einem einfachen Beispiel als Bug melden (bist ja Beta-Tester).Danke für die schnelle Antwort!
Wo genau melden, javascript-Adapter, js-controller, ...? -
@ente34 sagte in Javascript: Probleme mit readdir : feature oder bug?:
javascript-Adapter