###### Tags: `node.js` # Node.js ## 檔案系統 [參考連結](https://ithelp.ithome.com.tw/articles/10185422) ### 引入 fs ```javascript const fs = require('fs') ``` ### 非同步讀取檔案 ```javascript fs.readFile(fileName ,[options], callback) ``` fileName:路徑檔名 option:物件或字串,包含"編碼"及"flag"。這裡預設的編碼是 utf8 , flag是 "r"。 callback:帶兩個參數的function,err及file data,當我們執行readFile完成時, 要做的事 ### 同步讀取檔案 ```javascrit fs.readFileSync(fileName ,[options], callback) ``` ### 寫入檔案 ```javascrit fs.writeFile(fileName,data ,[options], callback) ``` fileName:路徑檔名 data: 要寫入的資料 option:物件或字串,包含"編碼"及"flag"。這裡預設的編碼是 utf8 , flag是 "w"。 callback:帶一個錯誤參數err的function,當我們執行writeFile完成時, 要做的事。例如: 寫入成功的訊息顯示;失敗時,丟出err ### 監聽檔案 [參考連結](https://juejin.cn/post/6844903617300791310) ```javascrit fs.watch(fileName, (event, filename) => {}) ``` ## 打包工具 pkg [參考連結](https://medium.com/dean-lin/%E6%8A%8A-node-js-%E5%B0%88%E6%A1%88%E6%89%93%E5%8C%85%E6%88%90%E5%9F%B7%E8%A1%8C%E6%AA%94-%E8%AE%93%E6%9C%8B%E5%8F%8B%E7%84%A1%E9%A0%88%E5%AE%89%E8%A3%9D%E7%92%B0%E5%A2%83%E5%B0%B1%E8%83%BD%E6%9A%A2%E5%BF%AB%E9%AB%94%E9%A9%97-pkg%E7%9A%84%E4%BB%8B%E7%B4%B9%E4%BB%A5%E5%8F%8A%E5%AF%A6%E9%9A%9B%E7%AF%84%E4%BE%8B%E5%88%86%E4%BA%AB-72a9a383942b) ### 安裝 ```bash npm install -g pkg ``` ### pkg指令 #### pkg -h 顯示可用參數 #### pkg -t 目標打包給哪個系統用的(Linux, macOS and Windows),如未設定會產生 3 個檔案 #### pkg -c 打包會參考 package.json 或是其他 json 檔案 #### pkg -o 檔案輸出名稱 ## IIS架站 [參考連結-1](https://www.cnblogs.com/aieceo/p/7906640.html) [參考連結-2](https://brooke2010.github.io/2021/03/14/window-IIS-run-nodejs/) 1. 安裝 [iisnode](https://github.com/tjanczuk/iisnode/wiki/iisnode-releases) 2. 安裝 [URL Rewrite](https://www.iis.net/downloads/microsoft/url-rewrite) 3. IIS建立站台直接指向到express專案根目錄 4. 根目錄建立 web.config ```config= <configuration> <system.webServer> <handlers> <add name="iisnode" path="launch.js" verb="*" modules="iisnode" resourceType="Unspecified" requireAccess="Script" /> </handlers> <rewrite> <rules> <rule name="all"> <match url="/*" /> <action type="Rewrite" url="launch.js" /> </rule> </rules> </rewrite> <iisnode promoteServerVars="REMOTE_ADDR" watchedFiles="*.js;node_modules\*;routes\*.js;views\*.jade" nodeProcessCommandLine="C:\Program Files\node.exe"/>   </system.webServer> </configuration> ``` 5. 根目錄建立 launch.js ```launch.js #!/usr/bin/env node require('./bin/www') ``` ### 注意事項 * 控制台>程式和功能>開啟或關閉Windows功能> 安裝ASP.NET 4.8跟 IIS * 應用程式集區>新增應用程式集區 * IIS根目錄>功能委派>處理常式對應改成讀取寫入 * 若要給別人瀏覽就開本機防火牆輸入規則