node --- 監聽文件變化(靜態、動態、子進程)

靜態版本:監聽的文件名寫死了

// watcher.js
'use strict'
const fs = require('fs');
fs.watch('target.txt', () => console.log('File changed!'));
console.log('Now watching target.txt for changes...');
  • 命令行啟動
node watcher.js

動態版本:在命令行輸入需要監聽的文件名.

  • process 全局對象,獲取命令行輸入的文件名
// watcher-argv.js
'use strict'
const fs = require('fs');
console.log(process.argv);
const filename = process.argv[2];
if (!filename) {throw Error('A file to watch must be specified!');
}
fs.watch(filename, () => { console.log(`File ${filename} changed!`));
console.log(`Now watching ${filename} for changes...`);

在這里插入圖片描述

使用子進程對變化文件進行操作

  • 在開發中最常見的做法是把不同的工作放在不同的獨立進程中執行
  • 在監聽到文件變化后,創建一個子進程,再用這個子進程執行系統命令
  • child-process模塊是node.js中的子進程模塊
// watcher-spawn.js
'use strict';
const fs = require('fs');
const spawn = require('child_process').spawn;
const filename = process.argv[2];if (!filename) {throw Error('A file to watch must be specified!');
}fs.watch(filename, () => {const ls = spawn('ls', ['-l', '-h', filename]);ls.stdout.pipe(process.stdout);
});
console.log(`Now watching ${filename} for changes...`);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250741.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250741.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

redis學習總結

一、redis工作流程 1、把redis安裝到Linux上 2、配置redis.conf文件 使之可以后臺運行 3、根據項目需求添加相應的jar包 4、調用相應的api實現項目需求 二、redis相關知識 1、redis是緩存數據庫,為了減少對關系型數據庫的訪問消耗,可以把常用的數據添加…

OPENCV-6 學習筆記

OPENCV-6 學習筆記 邊緣檢測 步驟: 濾波增強檢測 canny算子—Canny 的目標是找到一個最優的邊緣檢測算法 評價標準: 1.低錯誤率: 標識出盡可能多的實際邊緣,同時盡可能的減少噪聲產生的誤報。 2.高定位性: 標識出的邊緣要與圖像中的實…

es6 --- Promise封裝讀取文件操作

Promise: es6中為了解決回調地獄問題而產生的 Promise的參數 Promise的參數是一個函數.每個Promise在實例化時,都會立即執行參數里的函數 const p new Promise(()>{console.log(1); })// 解釋了上面的第2條Promise參數的參數 Promise的參數(函數),默認有2個參數(resol…

匿名函數

匿名函數:lambda 函數 語法: lambda 參數1, 參數2 : 表達式 表達式即為返回值 例: result (lambda x, y: xy)(1.2) print(result) 例2: newFunc lambda x,y : xy print(newFunc(1,2) 例3: result sorted…

hdu-6165(tarjan+topusort)

題意:一個有向圖,無自環,無重邊,讓你判斷這個圖內的任意兩點是否有路; 解題思路:首先,判斷兩個點是否可達一般用出入度來判斷,如果在拓撲排序中同時有兩個及以上入度同時為零的點&am…

OPENCV-7 學習筆記

OPENCV-7 學習筆記 轉換圖像尺寸 resize函數。這是最直接的方式,yrUp( )、pyrDown( )函數。即圖像金字塔相關的兩個函數,對圖像進行向上采樣,向下采樣的操作。 圖像金字塔 類似于金字塔的形狀,將原始圖像以金字塔形狀的分辨率…

雜項:E-Learning

ylbtech-雜項:E-Learning1.返回頂部 1、E-Learning:英文全稱為(Electronic Learning),中文譯作“數字(化)學習”、“電子(化)學習”、“網絡(化)學…

css --- flex布局的應用(between)

between 想把發布時間放在左邊,點擊放在右邊 頁面結構如下: 可以看到發布時間和點擊是在類 .mui-ellipsis 下.使用css3的 flex 布局中的: space-between .mui-ellipsis{display: flex;justify-content: space-between; }

WeUI

介紹: WeUI是微信設計團隊為微信網站開發量身定做的微信類UI界面,旨在改善和規范微信用戶體驗。包括組分如button,cell,dialog,progress,toast,article,actionsheet,icon…

php中的json

php中的json函數主要有三個: 函數描述json_encode()對變量進行 JSON 編碼json_decode對 JSON 格式的字符串進行解碼,轉換為 PHP 變量json_last_error返回最后發生的錯誤 認識前提: {},花括號代表包裝的是一個對象數據&#xff0…

vue --- 全局配置過濾函數,使用moment函數來格式化時間

效果1 YYYY-MM-DD 效果2 YYYY-MM-DD HH:mm:ss 配置注意事項 由于時間格式化,在大多數頁面中都會用到,因此建議配置在全局中 使用moment函數 -> http://momentjs.cn/ npm 安裝 # 命令行 cnpm i moment -S在全局中配置 // main.js import moment from momentVue.f…

2018ICPC南京賽區網絡賽J Sum(素數篩+找規律)

素數篩鏈接:https://blog.csdn.net/dl962454/article/details/76595623 【題意】 f(i):能拆成兩個數的乘積,并且這兩個數要求沒有平方因子,并且兩個數的位置互換算兩種方案。 最后求f(1)f(2)f(3)...f(n)。 【解題思路】…

[UE4]C++中extern關鍵字淺談

變量聲明和變量是有區別的 extern int i; //只是聲明i而非定義i int j; //聲明而且還定義了j 任何一個顯式初始化的聲明都將成為定義,而不管有沒有extern,extern語句一旦變量賦予了初始值就變成了定義。 extern double pi3.1415926; //定義 stat…

PHP 計算兩個兩個文件的相對路徑

例: a‘/a/b/c/d/e.php′;a = ‘/a/b/c/d/e.php’; b ‘/a/b/12/34/c.php’; 二者的相對路徑結果為:/a/b/12/34/../../c/d/e.php //計算出$b相對于$a的相對路徑: function getRelativePath($a,$b){$returnPath array(dirname($b));$arrA explode(…

vue --- 使用vue-router獲取帶參數的路由

希望的效果如下: 2個路由: 點擊如下 步驟. 使用 router-link 來指定路由路徑在router.js中指定 路徑的 事件處理函數(對應的組件)創建對應的組件 router-link 找到一個區別各個列表的屬性(id),將其作為參數傳遞到路由中to是vue-router中用來綁定路由的屬性由于需要進行計…

.Net Core2.*學習手冊

1.net core 基礎知識解析(創建一個.net core網站)(視頻錄制) 1.1 Startup解析(沒寫)   1.2 目錄結構分析(沒寫)   1.3 使用靜態文件(沒寫)   1.4 Controller(沒寫)   1.5 Razor頁面(沒寫) 1.6.net core appsetting/獲取配置文件   2.創建.net core項目 2.1 創建一個項…

java中static詳解

這個博主寫的總結很好,這里附上鏈接http://www.cnblogs.com/dolphin0520/p/3799052.html 下面進行簡要總結: 在《Java編程思想》P86頁有這樣一段話: “static方法就是沒有this的方法。在static方法內部不能調用非靜態方法,反過來是可以的。而且可以在沒有…

PHP 實現中文截取無亂碼的方法

PHP 實現中文截取無亂碼的方法 需知: 中文字符在gbk編碼下為2個字符,utf-8下為3個字符中文字符的ASCII值是從0xa0后開始的通過ord()函數可以返回字符串中第一個字符的ASCII值,chr()函數作用相反 方法: function GBsubstr($str…

vue --- 全局注冊子組件,并導入全局的子組件

假設: 需要一個評論的模塊comment由于comment在多個頁面中可能會復用.于是創建一個comment.vue 步驟: 創建comment.vue在需要引用的位置使import comment from ../subcomponent/Comment.vue 導入子組件在Vue實例中使用components屬性注冊注冊的規則: “comment-box” : comm…

7. 反轉整數

7. 反轉整數 描述 給定一個 32 位有符號整數,將整數中的數字進行反轉。 示例 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意: 假設我們的環境只能存儲 32 位有符號整數,其數值范圍是 [?2^31, 2^31 ? 1]…