博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用nodejs监控文件变化并使用sftp上传到服务器
阅读量:6903 次
发布时间:2019-06-27

本文共 1314 字,大约阅读时间需要 4 分钟。

首先,我们使用npm 安装两个别人封装好的模块。

npm install ssh2-sftp-clientnpm install gaze

第一个模块的作用是sftp上传文件,

第二个模块的作用就是监听文件变化了。当然,你也可以采用node自带fs模块。

这两个模块的用法在这里:ssh2-sftp-client gaze

安装好了以后,第一步就是监听文件的变化了,由于我的文件已经使用webpack构建好了,所以后面只是文件变化,不会有文件增加,所以这里只需要使用changed就可以了,其他的用法请参考上面的链接,都大同小异

复制代码

gaze(['你的文件路径/*.*','还可以使用数组的方式监听多个文件夹/app.js'], function(err, watcher) {    let watched = this.watched();    //监听文件的变化    this.on('changed', (filepath) => {        //romotePath是我文件的远程位置        let romotePath = '/root' + filepath.substr(15);        //put为上传文件的函数,下面会讲            put(filepath,romotePath);        console.log(filepath + ' was changed');    });});

复制代码

然后就开始写我们的上传文件的函数

复制代码

function put(localPath,romotePath){    let sftp = new Client();    sftp.connect({        host: '你的服务器地址',        port: '端口,没改过的话是22',        username: '连接的用户名',        password: '密码'    }).then(() => {        return sftp.put(localPath,romotePath);    }).then(() =>{        console.log("上传完成");    }).catch((err) => {        console.log(err, 'catch error');    });}

复制代码

好了,别忘了在我们的文件开始的地方可是要引入模块的。

let Client = require('ssh2-sftp-client');let gaze = require('gaze');

接下来我们来实验一下。来到我们的文件夹webpack一下

果然可以看到已经修改并且上传完成了。上传需要时间,请耐心等待。

来到我们的服务器,果然最近的修改时间已经变成现在了。

从此以后我终于不用一个个上传了。每次要修改直接。打开一个窗口开启这个脚本,就可以愉快的编码了。

      本文转自zsdnr  51CTO博客,原文链接:http://blog.51cto.com/12942149/1929369,如需转载请自行联系原作者
你可能感兴趣的文章
java数据结构循环链表_JAVA 数据结构链表操作循环链表
查看>>
php如何连接access,PHP如何连接Access数据库_PHP教程
查看>>
通过php使用cmd命令,window系统下使用cmd执行php命令
查看>>
项目重构经验php转java,这几年从 PHP 转到 Java 的有成功案例吗?
查看>>
java中多个条件模糊查询,带条件的查询—模糊查询
查看>>
爬虫 新闻 mysql,大规模异步新闻爬虫【3】:让MySQL数据库操作更方便
查看>>
php设置延迟响应,php能不能做到,只给某个用户延迟响应,其它用户不受影响?...
查看>>
oracle经常无响应,Oracle无响应故障
查看>>
php xml 转换数组函数,php xml转换成数组格式
查看>>
oracle12c不买会咋样,ORACLE 12c - “不是单一群体功能”
查看>>
php simplexml_load_file 详解,php中simplexml_load_file函数用法实例讲解
查看>>
linux登录用户who,技术|Linux who 命令 – 显示系统登录者
查看>>
linux内核下载 2.6.32,linux内核升级到2.6.32
查看>>
client linux amd64,linux 下安装minio并配置
查看>>
linux中配置nginx,linux中编译安装和配置nginx
查看>>
Linux循环sql调用,shell中使用SQL实现查询
查看>>
linux中make命令大全,Linux中的命令 make -f 是什么意思
查看>>
qcustomplot在Linux开发板,QCustomplot的使用以及编译动态链接库的过程
查看>>
aes逆字节替换C语言,AES加密算法之字节替换操作
查看>>
2017福建省c语言编程题,[蓝桥杯][2017年第八届真题]九宫幻方-题解(C语言代码)
查看>>