跳到主要內容

發表文章

目前顯示的是 8月, 2017的文章

使用Node.js + express 十分鐘內建立一個網站

前言: 若提到使用Node .js來架設網站, 基本上都會聯想到 Express 模組, 以下即是簡單地說明如何使用 Node .js + Express 在十分鐘內架設一個網站 檔案架構如下: node_modules view layout.ejs login.ejs index.ejs server.js package.json Step 1. 建立 package.json npm init Step 2. 安裝相關的 node modules, 列如: 提供整個 web 框架的 express, 以及作為 view 元件引擎 的 ejs (全名: Embedded Javascript), 還有一些 middleware, 像是用來 render partial view 的 express-partials, 以及解析 post 請求資料的 body-parser,  和能夠輸出HTTP請求日誌的 mogan npm install express -- save npm install express - partials -- save npm install body - parser -- save npm install morgan --save npm install ejs -- save Step 3. 建立 view 元件 layout.ejs <! DOCTYPE html > < html > < head >          < title > Simple Express Example </ title > </ head > < body >          < p >                  < a href = " / " > Home </ a > |                  < a href = &qu

grep & findstr 系統內建的強大文本搜尋工具

如果想找出某些含有定字串的檔案, 除了用肉眼去一個一個找之外, 還有什麼辦法呢!? 在Ubuntu 上, 使用 grep 指令 grep - r ' notepad ' . 註: -r 表示遞迴地搜尋整個資料夾包含子目錄 若是使用Windows 的作業系統, 可以使用 findstr 指令去找 findstr /s " notepad " *.* 註: /s 表示遞迴地搜尋整個資料夾包含子目錄 若是只想輸出檔案名稱, 可以加入參數 /m  如下 findstr /s /m " notepad " *.* 若是搜尋的字串中含有空白, 那我們必須加入參數 /c 使用指定字串來搜尋 列如: findstr /s /c: " notepad open " *.*

javascript 如何中斷forEach

假設我有一個方法, 目的是從陣列中找出特定的值並且輸出, 但考量到執行的效率, 所以希望在值已經找到的情況下中斷forEcah的執行, 那我可以怎麼做!? 陣列: [ { " id " : " 1 " , " name " : " andy " }, { " id " : " 2 " , " name " : " bob " } ] 方法: function findPerson ( employee , name ){ let id ; employee . forEach ( function ( element , index , arr ) { if ( element . name === name ) { console . log ( ` found ${ name }` ) ; id = element . id ; //中斷 } } ) ; return id ; } 實際上forEach 沒辦法像其他語言透過 break 或是 return 來中斷, 但若是硬要作也可以, 只要拋個exception就能搞定(不建議) 其實要走訪陣列中的元素不一定要用forEach, 也可以使用 every 或是 some 來達到目的, 跟 forEach 唯一不同的是 every\some 可以透過 return  來中斷 callback function every: function findPerson ( employee , name ){ let id ; employee . every ( function ( element , index , arr ) { if ( element . name === name ) { console . log ( ` found ${ name }` )

[Resolved] InvalidSignatureException: Signature not yet current

When I performed aws-sdk in js to populate my dynamoDb, I got the following error message: Error { InvalidSignatureException: Signature not yet current: 20170816T155301Z is still later than 20170816T090758Z (201 70816T085258Z + 15 min.)   message: 'Signature not yet current: 20170816T155301Z is still later than 20170816T090758Z (20170816T085258Z + 15 min. )',   code: 'InvalidSignatureException',   time: 2017-08-16T15:53:03.261Z,   requestId: '8NSAR81QCFOQJICPRLD4J7PSO3VV4KQNSO5AEMVJF66Q9ASUAAJG',   statusCode: 400,   retryable: false,   retryDelay: 24.613745619215656 } Solution: Apparently, my local machine clock is ahead aws server'. After I updated from  20170816T155301Z to  20170816T090758Z. Everything works fine. Note: If using vm hosted on hyper-v, we have to disable Time synchronization as well or the date time won't be changed. Step 1. Right-click your vm Step 2. Select Settings Step 3. Find Integration S

Please merge the change locally and upload the resolution for review.

相信有在使用Gerrit的人 或多或少有遇到以下的情況 在Gerrit 上Abandon某次提交的commit後, 結果忘記把本機上的HEAD恢復成commit前的狀態, 所以當我們程式都改好了想再上code時 就會出現 Please merge (or rebase) the change locally and upload the resolution for review. 解決方法很簡單 Step 1. 取消剛剛與前前一個(被abandon那個) commit,但保留修改過的檔案。 git reset HEAD~2 --soft Step 2. 重新上code git add . git commit -m "update"   git pull -- rebase git push ssh://andy.lai@10.36.10.202:29418/Windows/App/test HEAD:refs/for/master