我想从远程节点获取结果,并将其作为nodeJS中GET请求的结果返回。以下是我编写的代码。在ssh函数中调用return res.json({ A: file_data });
可以正常工作,并且得到预期的结果。但是,当我在ssh函数之后放置return res.json({ A: file_data });
语句时,会得到undefined
的结果。
app.get('/api/readfile',function(req, res){
var ssh = new SSH({
host: 'x.y.z.w',
user: 'xyz',
pass: 'pwd123'
});
var file_data;
ssh.exec('head -1 /home/file.csv', {
out: function(stdout) {
file_data = stdout;
return res.json({ A: file_data });
}}).start();
/* returning result at this point I get undefined data, may be due to asynchronous nature
console.log(file_data);
return res.json({ A: file_data });
*/
});
我只想问将return
函数的get
语句放在另一个函数中是否是一种好习惯(例如,这里我在ssh函数中放入了return调用)。什么是标准实践来处理nodeJS的这种异步特性。