利用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访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
nodejs教程之环境安装及运行
Nov 21 NodeJs
Nodejs爬虫进阶教程之异步并发控制
Feb 15 NodeJs
nodejs个人博客开发第六步 数据分页
Apr 12 NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
nodejs中函数的调用实例详解
Oct 31 NodeJs
详解nodejs 配置文件处理方案
Jan 02 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
NodeJs之word文件生成与解析的实现代码
Apr 01 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
nodejs制作小爬虫功能示例
Feb 24 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
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
PHP SOCKET编程详解
2015/05/22 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
jQuery无刷新分页完整实例代码
2015/10/27 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
python常见排序算法基础教程
2017/04/13 Python
Python3 Random模块代码详解
2017/12/04 Python
python自动化之Ansible的安装教程
2019/06/13 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
制药工程专业个人求职自荐信
2014/01/25 职场文书
员工合理化建议书
2014/05/19 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
2015年女工委工作总结
2015/07/27 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书