在节点js中连接ECONNREFUSED 127.0.0.1:21错误

时间:2017-04-11 12:10:39

标签: javascript node.js ftp

我在节点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();

出了什么问题?

2 个答案:

答案 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
});