利用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中的非阻塞方法介绍
Jun 05 NodeJs
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
NodeJS学习笔记之(Url,QueryString,Path)模块
Jan 13 NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
详解nodejs中的process进程
Mar 19 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
Sep 19 NodeJs
nodejs搭建本地服务器轻松解决跨域问题
Mar 21 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
详解nodejs内置模块
May 06 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
7个超级实用的PHP代码片段
2011/07/11 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
jquery自适应布局的简单实例
2016/05/28 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
详解Vue如何支持JSX语法
2017/11/10 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
Python中的rjust()方法使用详解
2015/05/19 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
python3处理含有中文的url方法
2018/05/10 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
Python Map 函数的使用
2020/08/28 Python
python中K-means算法基础知识点
2021/01/25 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
经典的班主任推荐信
2013/10/28 职场文书
英语系毕业生自荐信
2013/10/31 职场文书
商务英语本科生的自我评价分享
2013/11/15 职场文书
学生偷窃检讨书
2014/09/25 职场文书
计算机实训报告范文
2014/11/05 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP