利用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 03 NodeJs
基于NodeJS的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
Nodejs为什么选择javascript为载体语言
Jan 13 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
nodejs搭建本地服务器并访问文件的方法
Mar 03 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
详解NODEJS基于FFMPEG视频推流测试
Nov 17 NodeJs
nodejs项目windows下开机自启动的方法
Nov 22 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
nodejs初始化init的示例代码
Oct 10 NodeJs
浅谈JS和Nodejs中的事件驱动
May 05 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 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
桌面中心(四)数据显示
2006/10/09 PHP
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
js 动态选中下拉框
2009/11/26 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
python实现随机密码字典生成器示例
2014/04/09 Python
Python中常见的异常总结
2018/02/20 Python
python实现树形打印目录结构
2018/03/29 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
致100米运动员广播稿
2014/02/14 职场文书
征婚广告词
2014/03/17 职场文书
品牌宣传方案
2014/03/21 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
小学四年级学生评语
2014/12/26 职场文书
2015年员工工作总结范文
2015/04/08 职场文书
宇宙与人观后感
2015/06/05 职场文书
运动会5000米加油稿
2015/07/21 职场文书
图书借阅制度范本
2015/08/06 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
您对思维方式了解多少?
2019/12/09 职场文书