Ich habe diesen Codesend stdout/stderr Knoten mit und Express
const express = require('express')
const app = express()
app.get('/', function (req, res) {
var process = require('child_process');
process.exec('hadoop fs -ls',function (err,stdout,stderr) {
if (err) {
console.log(typeof(stderr));
console.log("\n"+stderr);
res.send(stderr);
} else {
console.log(stdout);
}
});
res.send('Hello World!')
})
app.listen(3000, function() {
console.log('Example app listening on port 3000!')
})
ich es kann hoffen, die cmd Ausgabe an den Client zurückschicken, aber ich habe diesen Fehler:
C:\Users\Administrator\Desktop\CSSE 434\project\backend>node index.js
Example app listening on port 3000!
string
'hadoop' is not recognized as an internal or external command,
operable program or batch file.
_http_outgoing.js:371
throw new Error('Can\'t set headers after they are sent.');
^
Error: Can't set headers after they are sent.
at ServerResponse.setHeader (_http_outgoing.js:371:11)
at ServerResponse.header (C:\Users\Administrator\Desktop\CSSE434\project\backend\node_modules\express\lib\response.js:767:10)
at ServerResponse.contentType (C:\Users\Administrator\Desktop\CSSE 434\project\backend\node_modules\express\lib\response.js:595:15)
at ServerResponse.send (C:\Users\Administrator\Desktop\CSSE 434\project\backend\node_modules\express\lib\response.js:145:14)
at C:\Users\Administrator\Desktop\CSSE434\project\backend\index.js:10:17
at ChildProcess.exithandler (child_process.js:212:5)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:194:7)
at maybeClose (internal/child_process.js:899:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
, wie Sie kann sehen, die Ausgabe string
zeigt, dass die Stderr ist ein String-Typ der hadoop is not recognized
ist normal, weil ich nicht auf meinem lokalen Hadoop haben Aber ich kann einfach nicht herausfinden, warum es das Ergebnis nicht an meinen Kunden sendet. Könnte mir jemand dabei helfen?
PS: Dies ist die einzige Datei in meinem project.There keine anderen Dateien ist
Entfernen Sie 'res.send ('Hallo Welt!')' Und setzen Sie ein 'res.send (...)' in das 'else' . – jfriend00