首頁 > web前端 > js教程 > 主體

利用nodejs監控檔案變更並使用sftp上傳到伺服器

高洛峰
發布: 2017-02-20 16:52:46
原創
1910 人瀏覽過

這篇文章主要介紹了利用nodejs監控檔案變化並使用sftp上傳到伺服器的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

最近在用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上傳到伺服器,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回复大家的。在此也非常感謝大家對PHP中文網的支持!

更多利用nodejs監控檔案變更並使用sftp上傳到伺服器相關文章請關注PHP中文網!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!