利用nodejs监控文件变化并使用sftp上传到服务器


Posted in NodeJs onFebruary 18, 2017

最近在用react+express做一个自己的工具型网站(其实就是夺宝岛抢拍器)

然后因为经常要改动,而且又要放到服务器上进行测试。总是要webpack,然后手动把文件上传上去,不胜其烦,索性搜索了下,直接写个能检测文件变化并自动进行上传的脚本好了。

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

npm install ssh2-sftp-client
npm 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一下

利用nodejs监控文件变化并使用sftp上传到服务器

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

利用nodejs监控文件变化并使用sftp上传到服务器

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

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

以上所述是小编给大家介绍的利用nodejs监控文件变化并使用sftp上传到服务器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
Nodejs异步回调的优雅处理方法
Sep 25 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
实例详解Nodejs 保存 payload 发送过来的文件
Jan 14 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
解析NodeJS异步I/O的实现
Apr 13 NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
详解nodejs中exports和module.exports的区别
Feb 17 #NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 #NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 #NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 #NodeJs
Nodejs实现短信验证码功能
Feb 09 #NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 #NodeJs
使用nodejs下载风景壁纸
Feb 05 #NodeJs
You might like
PHP修改session_id示例代码
2014/01/08 PHP
PHP如何将XML转成数组
2016/04/04 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
常用的js方法合集
2017/03/10 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
2015/04/09 Python
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
Python实现Linux中的du命令
2017/06/12 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
python安装gdal的两种方法
2019/10/29 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
如何对python的字典进行排序
2020/06/19 Python
对python中list的五种查找方法说明
2020/07/13 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
购房协议书
2014/04/11 职场文书
健康状况证明模板
2014/10/23 职场文书
学校开除通知书
2015/04/25 职场文书
招商银行工作证明
2015/06/17 职场文书
安全教育的主题班会
2015/08/13 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
小学数学新课改心得体会
2016/01/22 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
MYSQL 表的全面总结
2021/11/11 MySQL
Python自动化实战之接口请求的实现
2022/05/30 Python