利用nodejs监控文件变化并使用sftp上传到服务器
发布时间 - 2026-01-10 23:08:08 点击率:次最近在用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服务器
# node ftp上传文件夹到服务器案例详解
# Node交互式的SFTP上传实现过程剖析
# node.js自动上传ftp的脚本分享
# node.js express框架实现文件上传与下载功能实例详解
# NodeJs实现简易WEB上传下载服务器
# nodejs multer实现文件上传与下载
# nodejs+express实现文件上传下载管理网站
# nodejs连接ftp上传下载实现方法详解【附:踩坑记录】
# 好了
# 上传
# 上传文件
# 小编
# 就可以
# 自己的
# 在这里
# 会有
# 不胜其烦
# 还可以
# 第一个
# 多个
# 在此
# 其他的
# 这两个
# 第二个
# 宝岛
# 给大家
# 又要
# 可以看到
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
如何快速搭建高效WAP手机网站?
简单实现Android验证码
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
详解Android中Activity的四大启动模式实验简述
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Laravel怎么清理缓存_Laravel optimize clear命令详解
微信h5制作网站有哪些,免费微信H5页面制作工具?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
iOS发送验证码倒计时应用
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
JavaScript中的标签模板是什么_它如何扩展字符串功能
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
如何在新浪SAE免费搭建个人博客?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
三星、SK海力士获美批准:可向中国出口芯片制造设备
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
千库网官网入口推荐 千库网设计创意平台入口
长沙企业网站制作哪家好,长沙水业集团官方网站?
高防服务器租用如何选择配置与防御等级?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel如何实现用户密码重置功能?(完整流程代码)
如何撰写建站申请书?关键要点有哪些?
如何做网站制作流程,*游戏网站怎么搭建?
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
LinuxShell函数封装方法_脚本复用设计思路【教程】
如何在万网自助建站中设置域名及备案?
Laravel如何使用Eloquent进行子查询
Laravel中的withCount方法怎么高效统计关联模型数量
Java解压缩zip - 解压缩多个文件或文件夹实例
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
Laravel如何保护应用免受CSRF攻击?(原理和示例)
魔方云NAT建站如何实现端口转发?
canvas 画布在主流浏览器中的尺寸限制详细介绍
如何在宝塔面板创建新站点?
使用C语言编写圣诞表白程序
Swift开发中switch语句值绑定模式
油猴 教程,油猴搜脚本为什么会网页无法显示?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Angular 表单中正确绑定输入值以确保提交与验证正常工作
西安专业网站制作公司有哪些,陕西省建行官方网站?

