在节点js中使用simple-ssh从远程节点获取结果

时间:2019-01-25 12:32:48

标签: javascript node.js

我想从远程节点获取结果,并将其作为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的这种异步特性。

0 个答案:

没有答案