Я пытаюсь загрузить файлы на мой FTP, который находится на GoDaddy Hosting Plan Deluxe с Express.js. После многих поисков нашла NPM ftp library
Я следовал инструкциям по подключению к моей учетной записи ftp (специальной учетной записи для загрузки файлов), но теперь я не могу загрузитьфайл. Далее мой код:
const express = require('express');
var Client = require('ftp');
const app = express();
c.connect({
host: thehost,
port: 21,
user: theuser,
password: thepass,
});
var c = new Client();
c.on('ready', function() {
c.list(function(err, list) {
if (err) throw err;
console.dir(list);
c.end();
});
});
app.post('/files', async (req, res) => {
let myFile = req.files.filesBox;
let cleanName = myFile.name.replace(/[`~!@#$%^&*()|+\=?;:'"áéíóúâêîûãõçÇñÑ, <>\{\}\[\]\\\/]/gi, '-');
var c = new Client();
c.on('ready', function() {
c.put(cleanName, function(err) {
if (err) throw err;
c.end();
});
});
c.connect();
});
const port = process.env.PORT || 8080;
app.listen(port, () =>
console.log(`App on port: ${port}`)
);
Как видите, я получаю имя файла, используя let myFile = req.files.filesBox;
(filesBox - это имя формы), затем я удаляю все специальные символы с * 1009. * а затем отправьте файл. Моя проблема в том, что ответные сообщения:
Error: connect ECONNREFUSED 127.0.0.1:21
at Object._errnoException (util.js:992:11)
at _exceptionWithHostPort (util.js:1014:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1186:14)
Кто-то знает, почему не работает? Я читал на форуме, что ответ приходит, потому что я неправильно подключаюсь к FTP. Но когда начинается соединение, ответ об ошибке не появляется, и список dir печатается на консоли следующим образом:
[ { name: 'images',
type: 'd',
size: 0,
date: 2019-10-13T20:28:00.000Z },
{ name: 'remote-folder',
type: 'd',
size: 0,
date: 2019-10-06T05:13:00.000Z } ]
Я что-то упустил? У кого-то была такая же ошибка?
Я сделал тест с FileZilla, и тестовые изображения загружены без проблем.
Надеюсь, вы поможете мне.
Как я уже сказал, я работаю с FTP-библиотекой Node, Express и NPM