2012年10月26日 星期五

[宅] 菜鳥出槌筆記 - 本地化設置錯誤

今天要執行mongo指令時,一直出現以下錯誤訊息:

terminate called after throwing an instance of 'std::runtime_error'

  what():  locale::facet::_S_create_c_locale name not valid

Aborted (core dumped)

上網查了一下發現是本地設定的問題,所以在mongo指令之前加上"LC_ALL=C"就可以成功執行了
LC_ALL=C mongo

[宅] node.js開發筆記(2) - 以express-vhost來建立虛擬主機 & 背景執行node.js

為了在同一個主機上搭載不同網域的網站,在npm上survey了一下相關套件,最後找到了express-vhost
npm install express-vhost
express-vhost是express的middle-ware,可以透過resiter將特定的網域綁定指定function,來達到以網域做分流的功能。詳情請看:https://github.com/vast-eng/express-vhost

我們希望node能夠在背景執行,而且即使登出主機也能繼續提供服務。
這時我們就要使用forever,他能夠讓你的js檔在背景執行,以下是安裝及啟動方法:
npm install -g forever//記得要設定為全域
sudo forever start server.js//若要以80port開啟服務,記得要以root權限執行

比較要注意的是,利用forever來執行js檔是沒辦法讓你看到console.log的,所以在啟動之前最好用node指令執行一次,確定服務正常再使用forever來開啟sever。尤其是你的server預設listen 80port時,忘了加sudo又沒有相關提示可能會讓你白白debug老半天還找不出原因。

話說其實node最好不要listen 80port,而是用其他伺服器程式來轉接給他,詳細原因可能下一篇再解釋。