利用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 后缀名判断限制代码
Mar 31 NodeJs
NodeJS与Mysql的交互示例代码
Aug 18 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
Sep 18 NodeJs
nodeJs实现基于连接池连接mysql的方法示例
Feb 10 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 NodeJs
nodejs的安装使用与npm的介绍
Sep 11 NodeJs
Nodejs + sequelize 实现增删改查操作
Nov 07 NodeJs
详解NodeJS模块化
Jun 15 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获取网络上文件
2006/10/09 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
浅谈php的优缺点
2015/07/14 PHP
CI框架的安全性分析
2016/05/18 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
详解package.json版本号规则
2019/08/01 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
python中dir函数用法分析
2015/04/17 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python算法之图的遍历
2017/11/16 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
学校做一个有道德的人活动方案
2014/08/23 职场文书
2014年团委工作总结
2014/11/13 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
社区活动总结
2015/02/04 职场文书
药品开票员岗位职责
2015/04/15 职场文书
升学宴家长答谢词
2015/09/29 职场文书
创业计划书之农家乐
2019/10/09 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS