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.
-
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
-
@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
-
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?:
const my_readdir = util.promisify(fs.readdir);
Dafür gibt es eigentlich
fs/promises. https://nodejs.org/api/fs.html#fspromisesreaddirpath-optionsIm Adapter wird
fsvom 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). -
@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
fsvom 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
fsvom 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, ...? -
@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
fsvom 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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden