發表文章

MongoDB教學(一)_下載安裝_基礎指令

圖片
  記得很久以前寫過Redis的文章 和Redis一樣屬於NoSQL種類DB的mongodb Redis開發學習(2)_In-memory database跟On Disk(Relational) database比較_cli的基礎20大指令(資料型態介紹) MongoDB官網 https://www.mongodb.com/ 是採用json doc 形式的資料庫 無Relation的觀念 因此也不需要預先定義好Schema Included with your free cloud database: 512 MB of Storage Shared RAM Highly available replica sets, end-to-end encryption, automated patches, REST API Additionally, get access to the following when you launch a dedicated cluster: 10 GB or more of storage Dedicated RAM Performance optimization tools Backups & point-in-time recovery Enterprise security features including encryption key management, LDAP integration, and granular database auditing Global Clusters 電腦必須要64bit (MongoDB ver 2.2 之後就不再支持 Windows XP 系统。也無 32bit 的安裝文件維護在官網了) 載點: https://www.mongodb.com/try/download/community 這裡使用community版本 選custom可以自己決定安裝在哪 (預設C:\Program Files\MongoDB\Server\4.4.3 ) MongoDB安裝過程就要先指定Data及Log存放的資料夾位置。 ver4之後督添加可以做為Network Service user https://docs.mongodb.com/manual/tutorial/inst...

錯誤CS8026 C# 5 中無法使用 'null 散佈運算子' 功能。請使用語言版本 6 或更高的版本。_Error CS8026: Feature 'xxxxx' is not available in C# 5. Please use language version 6 or greater.

圖片
  若vs 遇到此錯誤通常 是因為有用到某些C#6才有的語法 以我情境就是用到 C# 6.0 版後才有提供的語法糖Null 散佈運算子( ?. 和 ?[]) https://docs.microsoft.com/zh-tw/dotnet/csharp/whats-new/csharp-version-history 比方本來專案用的是vs2015 , 2013而比較舊版的尚未支援到C#6.0以後的語法時候 就容易跑出滿江紅... Error CS8026 :  Feature  ' xxxx ' is  not available  in  C# 5 .  Please use language version 6  or  greater . 此時可能你可能會手癢想要把專案做升級 而參考到這篇做法(由於專案性質是website) https://stackoverflow.com/questions/31548699/how-to-use-c-sharp-6-with-web-site-project-type 一種方式是去Nuget載此package Microsoft.CodeDom.Providers.DotNetCompilerPlatform2.0 進行語法支援程度的升級(專案必須是.net4.5 framework) 以我的情境由於既有專案是4.6.1就有出現怪問題 而連鎖影響到其他在用舊版vs開發的人,所以套件相依性還是要在用之前多留意啊!! Ref: [C#] 在 Visual Studio 2015 使用 C# 7 https://dotblogs.com.tw/regionbbs/2017/03/31/using-cs7-in-vs2015 [C#] C# 7 不能編譯? 其實是 Microsoft.Net.Compilers 版本問題 https://dotblogs.com.tw/regionbbs/2017/03/30/vs2017-cs7-compiler-issue [Visual Studio]限制Visual Studio 2015開發時只能使用C# 5.0以前的語法 https://dotblogs.com.tw/stan...

Node.JS架構學習筆記(一)執行node js程式

圖片
NodeJS在開發中定位 網站開發部分一般可分為  前端、後端 前端部分  可能還會有  美工素材設計 的人員 前端工程師 / 程式設計師 (基本語言技能: html , css , javascript) 主要職責:除了確保User操作順暢也需要支援諸多不同瀏覽器和行動載具 後端工程師 / 程式設計師(基本語言技能: php my-sql) 接棒後會進行  網頁資料庫串聯 能者多勞的工程師們通常是需要一個人肩負前端及後端開發 絕對是需要喝多一點咖啡 (XDD) 因此誕生出 前端工程師可以方便開發後端功能的利器 NodeJS 主要是讓這些本來就很熟悉Javascript的工程師可以 直接上手後端的開發捷徑橋梁 也讓  前端網頁程式人員可以晉升  全端開發者 NodeJS 幕後工程 Node.JS 可以用javascript去撰寫code緣由 主要仰賴V8去進行Javascript語言邏輯之撰寫 V8是一個由Google團隊開發的開源JavaScript引擎,用於 Google Chrome及Chromium中。 NodeJs 是在2009年被 Ryan Dahl 所建立出來的 其靈感來自於看到檔案上傳至Flickr(免費及付費數位相片儲存的線上空間) 之過程呈現的進度更新條 他發現瀏覽器並沒有辦法知道到底現在有多少檔案已經被上傳和向伺服器端做資料索取 所以他想讓這一切都能變得更加簡單 傳統Javascript運作邏輯你會發現和C++有點像 主要也是因為 V8這套 Javascript引擎底層是使用C++去開發的緣故!!! 所以你寫好的js code 會被透過此引擎 編譯為 machine code machine code 再去讓電腦、伺服器來開啟web server 好放置網頁和一些動態程式上去 =============================================================== Node.Js  目錄架構: deps : 插件 =======================================================...

無法連接到設定的開發 Web 伺服器_Failed to register URL_因為檔案正由另一個程序使用。(0x80070020)_Failed to register URL_存取被拒。(0x80070005)

圖片
  事故發生在vs2019的WebSite應用 Failed to register URL_程序無法存取檔案,因為檔案正由另一個程序使用。(0x80070020) 第一招 .sln 方案檔用notepad 之類打開改一下port 重新執行看看 Try了將近有30幾個port都無效 恩  God~  還是一樣 第二招 刪除 %userprofile%/Documents/IISExpress/config 資料夾,重啟 Visual Studio執行 結果一樣是會嗝屁 第三招 刪掉.vs隱藏目錄然後重啟 Visual Studio執行 結果仍然會跳這討厭的錯誤 第四招 更新vs2019 和 重啟電腦 最後發現vs2019好像有捨麼更新的通知 重啟電腦仍無效 第五招 系統管理員開啟cmd後執行如下指令 netsh http add iplisten ipaddress=:: 查找網路文章原來VS 2019 16.0.3更新到此版加上有更新Windows到最新版的後遺症.... https://developercommunity.visualstudio.com/content/problem/556100/iisexpress-failed-to-register-url-for-site.html 會把註冊表中 電腦\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters 的ListenOnlyList :: 清掉 要自己手動補回來 此篇中開發者也遇到相關Issue https://programmingflow.com/2015/08/28/solved-iis-express-failed-to-register-url-access-is-denied.html 微軟官網對應錯誤事件代碼 Event ID 15005 — HTTP Service Namespace Management https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc727839(v=ws.10)?redirectedfrom=MS...

NodeJs_found 4 vulnerabilities (3 low, 1 critical)_jade相依套件的更新_Jade has been renamed to pug

圖片
 Node Js 在新專案中進行npm install 套件安裝時候 頻頻出這個錯 錯誤訊息如下 主因是因為 Jade已經被Rename了 npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade npm WARN deprecated constantinople@3.0.2: Please update to at least constantinople 3.1.1 npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer 用指令 npm audit 查看套件安全報告 === npm audit security report === Manual Review Some vulnerabilities require your attention to resolve Visit https://go.npm.me/audit-guide for additional guidance Low Incorrect Handling of Non-Boolean Comparisons During Minification Package uglify-js Patched in >= 2.4.24 Dependency of jade Path jade > transformers > uglify-js More info https://npmjs.com/advisories/39 Low Regular Expression Denial of Service Package uglify-js Patched in >=2.6.0 Dependency of jade Path jade > transformers > uglify-js More info http...

ReactJs_不必要的檔案預設範本刪除改為一個乾淨的應用專案

圖片
  記得到App.js清空引入檔案 跟回傳的Header Before import  logo  from   './logo.svg' ; import   './App.css' ; function   App () {    return  (     < div   className = "App" >       < header   className = "App-header" >         < img   src ={ logo }   className = "App-logo"   alt = "logo"  />         < p >           Edit < code >src/App.js</ code > and save to reload.         </ p >         < a            className = "App-link"            href = "https://reactjs.org"      ...

ReactJS_如何關閉eslintConfig

到package.json中 查找到 "eslintConfig" : {      "extends" : [        "react-app" ,        "react-app/jest"     ]   }, 然後改為 "eslintConfig" : {      "extends" : [        "react-app" ,        "react-app/jest"     ],      "rules" : {        "no-undef"  :  "off" ,        "no-restrited-globals" : "off" ,        "no-unused-vars" : "off"     }   },

ReactJs_處理預設Port 3000被佔據問題_Something is already running on port XXXX

圖片
  在預設用指令 npm start 執行時候時常遇到Port 可能有時會遇到3000 這個port有別的應用在使用問題 Something is already running on port XXXX 由於是在React Js 應用中執行 因此可以嘗試直接到package.json 修改"scripts"中start設定 預設的 改為指向3001 set PORT=3006 && Ref: How to specify a port to run a create-react-app based project? https://stackoverflow.com/questions/40714583/how-to-specify-a-port-to-run-a-create-react-app-based-project

Javascript基礎語法學習介紹5_navigator Object使用

  Javascript基礎語法學習介紹1(輸出/變數/判斷式/函數/陣列/迴圈) Javascript基礎語法學習介紹2_Object Javascript基礎語法學習介紹3_Javascript背後運行原理(js引擎)_ExecutionStack Javascript基礎語法學習介紹4_Function運行原理_Hosting、Scope與 ScopeChain觀念 在網頁開發上有時候會有需要判斷Client端用捨麼瀏覽器和相應資訊 甚至去得知是在捨麼作業系統發出瀏覽目前網頁的請求 黃色標註起來代表實務上較常用 navigator.platform 獲取哪個作業系統資訊 Windows OS 就是Win前綴(Ex: Win32、Win16) Mac OS 就是Mac前綴(Ex:MacIntel、Macintosh、MacPPC、Mac68K) Unix或Linux 就可能有HP-UX、SunOS、Linux i686、Linux armv7l.... navigator.product 瀏覽器的引擎名稱 Gecko,webkit,trident 現在好像無論Chrome、IE、EDGE、Firefox、Opera印出來都會是Gecko了 navigator.cookieEnabled 可用於檢查瀏覽器的cookie機制有沒有開啟 navigator.appCodeName 獲取瀏覽器的代碼名稱 例如Mozilla 現在好像無論Chrome、IE、EDGE、Firefox、Opera印出來都會是Mozilla了 navigator.appName 例如Netscape 現在好像無論Chrome、IE、EDGE、Firefox、Opera印出來都會是Netscape了 navigator.userAgent 獲取瀏覽器完整的版本資訊 Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edge: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrom...

C#中XML的Parser處理_load跟loadXML_The entity "xxx" was referenced, but not declared(參考了未宣告的實體xxx)

圖片
最近由於在協助院內一項parser 專利XML檔案任務  也因此有機會累積對XML檔案的相關處理經驗 通常在C#進行XML的讀取與Parser 有兩種方法 XmlDocument.Load 方法 該方法的overload Load(Stream) 從指定的資料流載入 XML 文件。 Load(TextReader) 從指定的 TextReader 載入 XML 文件。 Load(String) 從指定的 URL 載入 XML 文件。 Load(XmlReader) 從指定的 XmlReader 載入 XML 文件。 那通常比較容易直接就寫string 傳入xml 檔案路徑 1 2 XmlDocument XmlDoc = new XmlDocument(); XmlDoc.Load( @"C:\xml_dir\aaa.xml" ); 直到有一天突然跑出詭異的錯誤 參考了未宣告的實體 ’Lstrok’ 後來才得知原來 該XML檔案裏頭竟然藏著一個&字符 所以用第二種方式讀取(參考網路其他人解法) XmlDocument.LoadXml(String) 方法 在讀入後先做&的取代 1 2 3 XmlDocument XmlDoc = new XmlDocument(); string XmlContent = File.ReadAllText( @"C:\xml_dir\aaa.xml" ); XmlDoc.LoadXml(XmlContent.Replace( "&" , "&amp;" )); 然後就又挫屎了~(以後如果看到有人用上面那兩種方式定義,可以先釐清 該XML是如何生成的還有當中內容格式會不會有怪異特殊字符) 因為實際上 有些在XML中有用到如下實體(這是預設XML就會懂得基本entity) &lt;     <     小餘 &gt;     >     大餘 &amp;    &     和號 &apos;   '    ...