我在节点js中编写一个简单的应用程序,我遇到了这个问题:
Error: connect ECONNREFUSED 127.0.0.1:21
at Object.exports._errnoException (util.js:1034:11)
at exports._exceptionWithHostPort (util.js:1057:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1099:14)
这是剧本:
var Client = require('ftp');
var fs = require('fs');
var c = new Client();
c.on('ready', function() {
c.get('/foo/foo1.txt', function(err, stream) {
if (err) throw err;
stream.once('close', function() { c.end(); });
stream.pipe(fs.createWriteStream('foo.local-copy.txt'));
});
});
c.connect('MYIP',21,false,'none','user','password',10000,10000,10000);
c.end();
出了什么问题?
答案 0 :(得分:2)
它说与港口21的连接被拒绝了。
最可能的原因是您没有运行正在侦听该端口的FTP服务器。
你可能还有防火墙(虽然在环回接口上不太可能)。
答案 1 :(得分:0)
文档说在连接参数中使用一个对象。
试试这个:
var Client = require('ftp');
var fs = require('fs');
var c = new Client();
c.on('ready', function() {
c.list(function(err, list) {
if (err) throw err;
console.dir(list);
c.end();
});
c.put('foo.txt', 'foo.remote-tesssstt.txt', function(err) {
if (err) throw err;
c.end();
});
});
// connect to localhost:21 as anonymous
c.connect({
host: 'your_host', // ex: files.000webhost.com
port: 21,
user: 'your_user',
password: 'your_password',
secure: false,
secureOptions: 'none',
connTimeout: 10000,
pasvTimeout: 10000,
aliveTimeout: 10000
});