How to prevent git to commit a file, .gitignore not working

之前的網誌介紹了我把學習 NodeJs的程式碼 Open source了到 GitHub
https://github.com/sharechiwai/NodeExpress
現在發現有小小的難題..
就是很多的Web Application 都有使用第三方的API
如果直接把那些 API KeyCommitGitHub上那便會所有人都能我申請的 API Key
不太安全吧..
所以我便做了很多research看看怎樣解決這個問題.
很多網友都說只要修改 .gitignore 加上那個不想commit的檔案路俓便可以了
.gitignore config
但是試了很久也不成功 在GitHub Application上還是可以看到 那個config.js
config.js still showing on github to be commit

最後終於找到了為什麼 .gitignore not working 和解決方法

加了檔案路徑到.gitignore 都不能解決
是因為.gitignore 只能處理untrack的檔案..
即是如果你的檔案之前 commit過.當那個檔案有任何改變是Git都會說有檔案可以commit

解決方法..
我們需要使用 command prompt 在這個Git的 repository 上輸入以下的指令
git update-index –assume-unchanged [File path / 檔案路徑/ 如果只有指定檔案, 可以加檔案名/ 否則便會整個資料夾都不會 commit]

e.g.

git update-index --assume-unchanged config/config.js

Git command to make git treat the specific file/folder unchanged
得左
config.js not showing on git application

有時候大家想Git再次commit這個檔案..可以在command prompt上使用這個指令
git update-index –no-assume-unchanged [File path / 檔案路徑/ 如果只有指定檔案, 可以加檔案名/ 否則便會整個資料夾都不會 commit]

E.G.

git update-index --no-assume-unchanged config/config.js

Git command to ensure the file/folder are tracked
Hope you find it useful

NodeJs how to get root path – 在NodeJs上如何取得 Root Path

今日嘗試在Route 檔案上load我的config file
E.G.

var config = require('./config/config');

誰不知..
當我執行我的NodeJs Application 時出現以下的錯誤信息
Error: Cannot find module ‘./config/config’
Error: Cannot find module './config/config'

解決方法是只要我們可以Reference Full Path E.G. 包含 Root Directory 應該便可以解決這個問題
我們可以使用 “path“這一個module
之後使用他的path.dirname功能去取得
require.main.filename執行的js path location

解決方法

var path = require('path');
var appDir = path.dirname(require.main.filename);

console.log(appDir);
var config = require(appDir + '/config/config');

結果:
Print root directory

Hope you find it useful

NodeExpress My NodeJs recipe Code – 我的NodeJs 罐頭程式碼

最近又再開始寫NodeJs
還記得第一次學習 NodeJs 是在 Oxford其中一個 Javascript User Group
NodeSchool Day上學..
由於沒有常常使用的關係 所以很快又忘記了..
到了去到Hackathon時有需要用到NodeJs..
又要花一些時間才可以熟習 什麼寫NodeJS的Code

不久之前參加了 Intel IoT的一個 Hackathon..
又一次令我感到..明明之前學過..但是又忘記了的受挫感..

完了Hackathon之後便下定了決心..
要把自己學習過的 NodeJs 技術/功能Blog 和放在GitHub
和大家分享..
就當是一個recipe, 方便remind 自己之後寫過的Code

有興趣的朋友可以去我的GitHub看看
https://github.com/sharechiwai/NodeExpress

Node Express By ShareChiWai
或 Published Version
http://sharechiwainodeexpress.herokuapp.com/

Hope you find it useful

‘scp’ is not recognized as an internal or external command – 如何在Windows 命令提示符 上使用 scp

最近嘗試跟隨一個網上教學去把電腦上的NodeJs code deploy/ copy到 Intel Edison / Raspberry Pi

他的指令是這樣的
scp [fileName] [copy to filename, 通嘗是 root@URL_IPAddress:~/FilePath]
但是當我執行
scp這個指令是他出現了以下的錯誤信息
“‘scp’ is not recognized as an internalor external command, operable program or batch file
'scp' is not recognized

解決方法十分簡單.
跟上一次介紹

‘ssh’ is not recognized as an internal or external command – 如何在Windows 命令提示符 上使用 SSH

我們可以使用GitUsr/Bin 資料夾入的 程式便可以

相信很多Developer都有使用Git
如果唔有的話可以到以下網址 下載及安裝Git
https://git-scm.com/downloads

安裝完成後..便可以在WindowsEnvironment Path 環境變數上的 “Path“變數上加上
Git\usr\bin 的路徑
因為這個路徑上存有很多有用的工具/程式
E.G
C:\Program Files\Git\usr\bin
Git User Bin Path

按下”確定“便可以了
Add Environment Variable on Windows 10 for Git User Bin

之後再次執行 “scp” 應該會成功的
scp working on Windows
Hope you find it useful

Error: Listen EACCES 0.0.0.0:5000

今日嘗試好好地寫一個Node JS With ExpressWeb Application
來練習一下自己的NodeJS Skill
誰不知當我 執行 node app.js
出現了以下的錯誤信息

Error: Listen EACCES 0.0.0.0:5000
Error: Listen EACCES 0.0.0.0:5000
做了一會research之後發現這是因為電腦上同一個Port e.g. port :5000
正在被使用中..
所以便有這個error.
之後發現原來電腦上的IIS 其中一個virtual directory正在使用 port 5000

解決方法十分簡單
只需要更改了 NodeJs 執行的Port便可以了
E.G.

var express = require('express');

var app = express();

var port = process.env.PORT || 3000;

app.listen(port, function(err) {
    console.log('running server on port ' + port);
});

Hope you find it useful

HTML5 Upload PDF only

今天在公司更新了一個功能是讓使用者上載文件
e.g. PDF/doc/docx等等

希望可以和大家分享

< input accept="application/pdf,application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document" name="Upload Saved Replay" type="file" />
<input accept="application/pdf,application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document" name="Upload Saved Replay" type="file" />

Hope you find it useful

‘ssh’ is not recognized as an internal or external command – 如何在Windows 命令提示符 上使用 SSH

很多時候網上的教學都是使用LinuxMacBash
有很多時候都會使用到SSH

最近嘗試在Windows 的Command Prompt上使用 SSH時出現以下的錯誤信息
‘ssh’ is not recognized as an internalor external command, operable program or batch file
SSH is not recognized

如何可以在Windows 命令提示符 上使用 SSH
解決方法十分簡單
相信很多Developer都有使用Git
如果唔有的話可以到以下網址 下載及安裝Git
https://git-scm.com/downloads

安裝完成後..便可以在WindowsEnvironment Path 環境變數上的 “Path“變數上加上
Git\usr\bin 的路徑
因為這個路徑上存有很多有用的工具/程式
E.G
C:\Program Files\Git\usr\bin
Git User Bin Path

按下”確定“便可以了
Add Environment Variable on Windows 10 for Git User Bin

之後當我們在WindowsCommand prompt上執行 SSH
Successfully Run SSH on Windows
Hope you find it useful