【发布时间】:2020-10-08 22:56:56
【问题描述】:
首先很抱歉我的英语不好,因为我来自德国
一般信息:
我正在使用:
- 节点版本 12.14.0
- npm 版本 6.13.4
- 电子版 8.2.5
- 角度版本 9.1.4
我从template 生成了一个 Electron Angular 应用程序,并添加了一个按钮,以便当我单击该按钮时,脚本会尝试通过 npm ftp 包将文件发送到 ftp。问题是没有一个包能正常工作。
我尝试过的包:
- ftp
- ftp-client
- basic-ftp
我遇到的问题 ftp:
当我使用这个包时,我必须至少点击两次按钮,以便它连接并上传文件。它应该立即上传文件,但它没有。我测试了一些东西,发现它是因为它在 10 秒后超时。但这不是问题。问题是它永远不会在第一次尝试时连接。我已经对其进行了至少 30 次测试,但它总是在第一次尝试时超时。
我遇到的问题 basic-ftp:
这里的问题是它在第一次尝试时直接连接,但连接到 ftp 需要大约 10 秒,然后再过 10 秒或更长的时间上传文件。而且它有时只在第一次尝试时起作用。有时我必须点击按钮 5-10 次才能上传文件。如果您遵循示例代码,它会在控制台中记录很多信息。但是日志似乎没有任何错误,或者它只是没有像打盹然后再次醒来一样。
ftp-client 遇到的问题:
这里的问题实际上并不复杂:它只是不起作用。有时它会给我一个“错误:控制连接超时”。在我按下按钮 5 到 8 次后,有时它只是不起作用。
在每种情况下,我都使用了每个存储库中的示例代码,但这里仅作为参考,是我用于不同 npm 包的代码:
ftp:
var Client = require('ftp');
var fs = require('fs');
var c = new Client();
c.on('ready', function() {
c.put('C:/test/test.txt', 'test.txt', function(err) {
if (err) throw err;
c.end();
});
});
// connect to localhost:21 as anonymous
c.connect({host: "local.host.com", username: "username", password: "**********"});
ftp客户端:
const config = {
host: 'local.host.com',
port: 21,
user: 'username',
password: '*******'
}
var ftpClient = require('ftp-client');
var client = new ftpClient(config, {});
client.connect(function() {
client.upload(["C:/test/test.txt"], './', {
baseDir: 'test',
overwrite: 'all'
}, function(result) {
console.log(result);
})
})
基础-ftp
const ftp = require("basic-ftp")
async function example() {
const client = new ftp.Client()
client.ftp.verbose = true
try {
await client.access({
host: "local.host.com",
user: "username",
password: "***********",
secure: true
})
console.log(await client.list())
await client.uploadFrom("C:/test/test.txt", "test.txt")
}
catch(err) {
console.log(err)
}
client.close()
}
我真的希望有人能帮助我。我真的不知道错误在哪里。我也没有上传一个非常大的文件,它只是一个.txt,里面有“Hello World”。正如您可能已经猜到的那样,test.txt 位于“C:/test/test.txt”中,并且域“local.host.com”只是一个占位符。
【问题讨论】:
标签: node.js angular npm ftp electron