最後幾天我試着去得到節點JS運行一個簡單的FTP服務器。節點JS - FTP-SRV - 簡單的FTP服務器實例需要
我發現了一個名爲「FTP-SRV」有一些文件在這裏包: https://www.npmjs.com/package/ftp-srv
啓發由代碼snipptes那裏,我寫了一個小腳本:
const FtpSvr = require ('ftp-srv');
const hostname = '0.0.0.0';
const port = 1111
const ftpServer = new FtpSvr ('ftp://' + hostname + ':' + port,
{ anonymous: true, greeting : [ "Hello Jong", "Wie gehts?" ] });
ftpServer.on ('login', (data, resolve, reject) =>
{
console.log ('data: ' + data);
console.log ('resolve: ' + resolve);
console.log ('reject: ' + reject);
});
ftpServer.on ('client-error', (connection, context, error) =>
{
console.log ('connection: ' connection);
console.log ('context: ' context);
console.log ('error: ' error);
});
ftpServer.listen()
.then(() =>
{
console.log (`Server running at http://${hostname}:${port}/`);
});
我可以啓動腳本與「節點ftpserver.js」,它運行沒有問題。 如果我使用FTP客戶端軟件連接它似乎連接,但等待「歡迎消息」,並在那一點掛起。
我公司提供的「問候語」 -Variable但文本不會發送到客戶端。
我搜索了很多在谷歌,但無法找到的「FTP-SRV」任何工作的例子。
我想,我必須填寫一些代碼的點是在這裏:
ftpServer.on ('login', (data, resolve, reject) =>
{
// HERE
});
這將幫助我很多,如果有人可以提供一些示例代碼來獲得一個工作的客戶端連接,並克服問候消息。
---編輯---
從jcaron的建議幫了不少忙,林又進了一步了。這是我的變化:
[...]
ftpServer.on ('login', (data, resolve, reject) =>
{
resolve ({ root: '/home/peter/apps/ftpfiles' });
});
[...]
當我現在有一個客戶端連接,客戶端嘗試讀取遠程目錄。 3次嘗試後,客戶端得到超時。
好像客戶端訪問斜面目錄「/家庭/彼得/應用/ ftpfiles」。我可以說它存在並具有用戶的讀/寫權限,我啓動了我的「ftpserver.js」-Script。
我嘗試了一些東西用FS-對象,而不是根:[DIR],但總是看到相同的行爲。
任何人都可以幫忙嗎?
---編輯---
除了簡單地改變
const hostname = '0.0.0.0';
#to local address:
const hostname = '192.x.y.z';
,它爲我工作。
幫了很多,非常感謝!現在我掛在客戶端沒有得到目錄列表。我更新了我的帖子。 – Peter
客戶端與服務器在同一臺計算機上,還是在同一個局域網上?在第一種情況下將「0.0.0.0」地址更改爲「127.0.0.1」,或者在任何情況下都將實際本地IP更改。 – jcaron
我已經更改爲127.0.0.1。忘了提及。但是,當我改變到本地地址的時候:-))。謝謝你的幫助! – Peter