0
FTP 요구 사항에 https://github.com/mscdex/ssh2을 사용하고 있습니다. 나는 다음 시도 코드 언급 : 같은Bluehird로 노드 SSH2 SFTP를 알리십시오
'use strict';
global.Promise = require("bluebird");
global._ = require('lodash');
var Client = Promise.promisifyAll(require('ssh2').Client);
Promise.promisifyAll(Client.prototype);
var clientObject, conn;
function getClient() {
return new Promise((resolve, reject) => {
if (clientObject) resolve(clientObject);
let authObj = {
host: 'abc',
port: 22,
username: 'name',
password: 'password'
};
conn = new Client();
conn.connect(authObj);
conn.on('ready',() => {
conn.sftp((err, sftp) => {
if (err) reject(err);
clientObject = sftp;
resolve(clientObject)
});
});
conn.on('error', (err) => { reject(err) });
});
}
function getList(){
getClient().then((cObj)=>{
cObj.readdir('.').then((list)=>{
_.each(list, (file)=>{console.log(file.filename)});
});
});
}
getList();
위가 주어진다 오류 : 위의 오류에서
Unhandled rejection TypeError: cObj.readdir(...).then is not a function
.
.
.
/home/nk/test/node_modules/ssh2-streams/lib/sftp.js:1583
cb(undefined, entries);
^
TypeError: cb is not a function
at /home/nk/test/node_modules/ssh2-streams/lib/sftp.js:1583:13
을; 이 줄을 가리키는 것 같습니다. https://github.com/mscdex/ssh2-streams/blob/master/lib/sftp.js#L1583
달성 할 수 있습니까?
'readdirAsync'를 시도해보십시오. 'promisifyAll' 일 때, bluebird는 각 메소드에 대해 Async 버젼을 추가 할 것입니다. –
다음과 같이 오류가 발생합니다 :'처리되지 않은 거부 TypeError : cObj.readdirAsync가 함수가 아닙니다' – namit
@TuanAnhTran; 'console.log (cObj.readdir);'내게 [Function]'; 'console.log (cObj.readdirAsync);'나를'undefined'라고합니다. – namit