想实现一个功能,通过本地运行nodejs,便能连接登录远程的FTP服务器,并监听其文件的变更。
let ftp = require('ftp');
let watch = require('watch');
let config = reuqire('./config');
let ftpServer = new ftp();
main();
async function main () {
await connectFtp();
createMonitor();
}
// 连接FTP服务器
function connectFtp () {
ftpServer.connect({
host: config.ftpHost,
user: config.ftpUser,
password: config.ftpPassword
});
return new Promise(resolve => {
ftpServer.on('ready', resolve);
});
}
// 监听FTP文件上的变更
function createMonitor () {
watch.createMonitor(config.ftpFilePath, monitor => {
monitor.on('changed', () => {
console.log('文件变更');
});
});
}
由于没有测试环境,不知这段代码能否正常运行,效果是否符合预期。
另外如何才能监听多个文件(排除这种方案:监听共同路径,再过滤文件)。
回答
自己开个虚拟机,跑ftp服务;监听多个文件,可以利用现成的npm包如watchr之类。