大家好
最近有個需求,就是使用 nodejs 去開發網站,這真的是很特別的項目。
於是我們可以搜尋,到底有哪些 nodejs 的 web framework ?
於是我們可以找到
 
Sails (老牌子 nodejs web 架構)
 
首先大家要知道,這與我們一般使用 PHP 或是 JSP 或是 ASP不一樣,PHP需要 apache server 去作為網站伺服器,JSP需要 Tomcat ,ASP 當然需要 IIS,但是呢,nodejs 與 python 不一樣,他們都可以直接作為web server,直接聆聽端口。其實JAVA也可以,但是不方便使用。
 
首先需要安裝
nodejs
 
再來安裝 Sails
文件:
 
安裝Sails:
 
1.創建資料夾
2.打開 windows 指令視窗
3.CD 切換資料夾到該資料夾
 
4.輸入 npm -g install sails
-g 是全域安裝,可以直接呼叫sails 裡面的指令
 
補充參數:
--save 是寫入設定檔案之中(一般安裝nodejs套件會需要加上 save,才會記錄在 package.json 上面)
-g 是全域安裝,可以直接呼叫sails 裡面的指令
安裝後會發現多一個 node_modules 資料夾
這是nodejs 專案通用的第三方套件資料夾,資料非常多,如果有git 或是 dropbox 記得不要commit進去以及同步,資料真的非常多。
 
5.輸入 sails new testProject
會發現多了 testProject 資料夾
進去裡面後會發現連 .gitignore 都配置好了
相當貼心
 
6.輸入 cd testProject
進入資料
7.輸入 sails lift
啟動 sails
 
啟動時會發現防火牆警告,因為他這邊開始使用端口。
 
 
8. 到 http://localhost:1337/ 看看吧 XD
這就是 sails 初始頁面囉。
 
所以這邊也可以知道,如果關閉命令列視窗,server就會停止,這點需要注意。當然也可以設定成背景執行。
 
 
認識sails 架構:
基本上會用到的資料夾是 api,assets ,config,views 比較常用到
 
大部分的修改通常都需要重新啟動 sails ,除了單純修改 views 裡面的檔案除外。
先看看api資料夾
常用到的是 controllers 與 models,從這邊也可以知道 sails 是 MVC 架構的。
 
我這邊稍微介紹sails 的網站系統架構
 
Router:
MVC架構基本上都是先從 router進來,sails 的 router 放在 config/routes.js 。感覺配置方式應該是很容易理解。
官方說明在這邊 :
 
Controller:
controller 裡面放動作,有點難解釋,基本上就是邏輯的部分放在這邊,這是MVC架構的精神。檔案是 api/controllers/xxxxController.js(自行新增)xxxx是主要命名,基本上以小寫駝峰方式命名,所以如果我新增一個 xxxxController.js,那我必須修改 router 配合事件加入以下資料:
 
//get 是存取方式,例如 post
'get /xxxx/' : "xxxxControlle.index",
'get /xxxx/list': "xxxxControlle.list",
所以可以明顯看出來,sails 會配合網址呼叫物件,所以 controller 裡面大概是這樣寫
 
//XXXX功能
module.exports = {

//action名稱.類似zend 中的action
index: function (req, res)
{
var viewData = [];//要到模板的值
//設定view的值
return res.view('xxxx/index',viewData);
},
list: function (req, res)
{
var viewData = [];//要到模板的值
//設定view的值
return res.view('xxxx/list',viewData);
},
};
View:
view 裡面放網頁模板,可以看到預設是使用 ejs 作為模板引擎,例如:homepage.ejs,依照上方設定需求,我們可以新增 views/xxxx/index.ejsviews/xxxx/list.ejs 來使用。
ejs 模板教學(官方說明):
 
裡面的內容是使用 html 方式開發,比較直覺
 
########後記########
 
至於資料庫應用,我有機會再打文章吧,因為資料庫應用要認識的東西比較複雜,希望大家對於 nodejs 與 sails 有初步認識,至於用 nodejs 開發web 到底好不好呢?我會說...不建議,我覺得 基於 javascript 的特性,開發 APP 與 應用程式或是 server 程式應該會更適合 nodejs ,以上為個人淺見,感恩!