利用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进程管理模块forever详解
Jun 01 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 NodeJs
深入nodejs中流(stream)的理解
Mar 27 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
详解nodejs微信公众号开发——6.自定义菜单
Apr 13 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 NodeJs
浅谈NodeJs之数据库异常处理
Oct 25 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
Jul 31 NodeJs
nodejs基础之buffer缓冲区用法分析
Dec 26 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 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
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
简单的php中文转拼音的实现代码
2014/02/11 PHP
php判断是否为json格式的方法
2014/03/04 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Django框架安装方法图文详解
2019/11/04 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
电子商务专业个人的自我评价
2013/11/19 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
团结演讲稿范文
2014/05/23 职场文书
项目经理任命书
2014/06/04 职场文书
导游词格式
2015/02/13 职场文书
订货会主持词
2015/07/01 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA