버튼이있는 페이지를 제공하는 간단한 노드 서버가 있습니다. 버튼을 클릭하면 원격 호스트에서 명령을 실행해야합니다. 명령이 끝나면 출력은 함수의 응답에 주어져야하며 html로 표시되어야합니다.NodeJS의 원격 호스트에서 프로세스가 생성됨
현재이 서버 코드 :
app.use(logger("combined"));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.get('/index.html', function (req, res) {
res.sendFile(__dirname + "/" + "index.html");
})
app.post('/connect', function (req, res) {
var spawn = require('cross-spawn-async');
var mpiProc = spawn('ssh','[email protected]','"ls"', { stdio: ['pipe','pipe',2,'pipe'] });
var grid = "...8.1..........435............7.8........1...2..3....6......75..34........2..6..";
str = "";
mpiProc.stdout.on('data', function(data) {
console.log(data);
str = data.toString();
res.write('data: ' + JSON.stringify({ msg : str }) + '\n\n');
// Output
});
mpiProc.on('close', function(code) {
res.end(str);
// Script exit code
});
mpiProc.on('error', function(code) {
res.end('stderr: ' + code);
// Script exit code
});
})
require('http').createServer(app).listen(3000, function(){
console.log('Listening on 3000');
});
다음 통화가 원격 호스트에서 'ls'이 명령을 실행하려고 볼 수 있듯이 :
var mpiProc = spawn('ssh','[email protected]','"ls"', { stdio: ['pipe','pipe',2,'pipe'] });
을하지만이되지 않습니다 반환 아무것도, 터미널에서 직접 서버에서 실행되는 동안, 그것은 디렉터리 콘텐츠의 목록을 반환합니다. 나는, 서버의 디렉토리 내용의 목록을 기대했던 반환
var mpiProc = spawn('ls', { stdio: ['pipe','pipe',2,'pipe'] });
: 명령은 내가이 일을 시도 스폰으로 이런 식으로 작동하는지 테스트합니다. 그러면 원격 호스트에 파이프를 만들어 명령을 실행 한 다음 서버의 명령 결과를 저장하는 방법은 무엇입니까?