【发布时间】:2018-04-01 15:11:42
【问题描述】:
id 喜欢使用 nodejs 构建一个 sftp 客户端应用程序。目前我能够从服务器接收 lsEntries 并将它们打印到终端。
var Client = require('ssh2').Client;
var express = require('express');
var app = express();
var cors = require('cors');
app.use(cors);
var connSettings = {
host: myserver,
port: 22,
username: myuser,
password: passwd
};
var remotePathToList = '/';
var conn = new Client();
conn.on('ready', function(){
conn.sftp(function(err, sftp){
if(err) throw err;
sftp.readdir(remotePathToList, function(err, list){
if(err) throw err;
var contents = []
contents = (list);
for(var i = 0; i < contents.length; i++){
console.log(contents[i].filename);
}
app.get('/data', function(req, res){
res.send(contents);
});
app.listen(3000);
//close connection
conn.end();
});
});
}).connect(connSettings);
为了在我的前端接收数据,我有以下 JQuery 代码:
$(document).ready(function(){
$("button").click(function(){
$.get('http://localhost:3000/data', {}, function(data){
var myData = (data);
console.log(myData.length);
});
});
});
但我没有收到答复。有时我在等待很长时间后得到 ERR_EMPTY_RESPONSE。请注意,我使用“cors”来防止 Access-Control-Allow-Origin 错误。但是,当我在浏览器中键入 localhost:3000 时,我会将数据打印到屏幕上(JSON)。 从前端访问 lsEntry 数组的正确方法是什么?
提前致谢
【问题讨论】:
标签: javascript node.js post get