Umgang mit was sollte ein einfaches Problem sein, aber ich habe es für eine Weile stecken. Könnte mit String-Codierungen oder Pipes oder etwas ganz anderem zu tun haben - nicht sicher.Node Kind Prozess Spawn: Stdout gibt einen undefinierten Wert zurück
Hier ist ein Code, der das Problem zeigt - es ist ein Kind Laich ist ein Python-Skript aufrufen:
const spawn = require('child_process').spawn;
let py = spawn('python', ['../py-docker-encryption/handle_encrypt.py']);
let encMsg = {action: 'enc', data: []}
encMsg.data.push(allArr[0].items.S)
let dataString;
py.stdout.on('data', (data) => {
dataString += data.toString();
})
py.stdout.on('end',() => {
console.log(dataString)
})
py.stdin.write(JSON.stringify(encMsg));
py.stdin.end()
// py.on('close', (code) => {
// cb(null, dataString)
// })
Der Python-Code ist komplex, aber ich habe es gründlich getestet: es ist ein Skript-Verschlüsselung, die die zurückgibt Chiffretext zu stdout. Aber das macht nichts. Unter dem Strich kehrt das stdout in der .on ('data') Pipe normal zurück, aber bis zum Schließen des Skripts oder .on ('end') wird ein einzelner "undefined" an den Anfang des dataStrings angeheftet Zeichenfolge. Zum Beispiel, das ist meine Konsole ist (alles, was am Anfang ist die undefinierte zählt - der Rest Normalbetrieb ist):
undefined[{"data": "AYADeJldNsBlMPApbYJydOfQ5msAXwABABVhd3MtY3J5cHRvLXB1YmxpYy1r
ZXkAREF3aUNDRWRHOTlUUHNYMFlwWVZLVnBPaHFxMDhiQ0NXOUkyWUVocEdTMWV4TkpjV0VxRnlFZ0xa
dkpIOVVmZEM1QT09AAEAB2F3cy1rbXMATmFybjphd3M6a21zOmV1LWNlbnRyYWwtMTo5MDUwNDk5MjMx
NjI6a2V5L2Q4NTNhNzdhLTJmMmMtNDRkNy04ZmNjLTE3MzNmZmVjYmM5NwC4AQIBAHg4n+ZTthRASUgK
QrDeQL96fA+8KdXwWlK3rIBH8nfwGQEln5SRtpBSM1tkyjxWDfoLAAAAfjB8BgkqhkiG9w0BBwagbzBt
AgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMv+tUKJb0bdkvMe8FAgEQgDuy7Vx1nDBCUUGS
+GmG5gl7VcFP1e7t0BcSZ3KYeOgZDdZsH3iMXajtPktejPYzmBxFbxigN0ZQLXti2wIAAAAADAAAEAAA
AAAAAAAAAAAAAADhoAGEpZmeu/1Y+eOqL8OX/////wAAAAEAAAAAAAAAAAAAAAEAAAAEZ0I1VTfw2cHO
wx7ejXvVx9+vZjsAZzBlAjAw7KDk/iwWADqUfKmjyjKGrEab/bTUXu59A5xA0Db/L5JgCnhqlw3n8MTW
haVlqmwCMQDKSmZeKXJn0tvDYIYlVY20VwD+HRBTji/P62cREOE89iPbjLOykxeQJyqB3K7eGlA=\n"}
]
Irgendwelche Ideen dazu? Mein Anwendungsfall ist komplizierter als das, und ich kann mich nicht sehen, dass ich nur die Undefinierten heraus analysiere - scheint wirklich hacky.
Vielen Dank!
Sie sind ein Lebensretter Kerl. Ich werde diese Antwort morgen überprüfen, und Ihre Antwort akzeptieren, wenn sie es behebt (was ich sicher machen werde, das macht sehr viel Sinn). Große Einsicht. –