2013年9月25日 星期三

Ejs page scope直接使用session物件的方式

在操作ExpressJS的Ejs View Engine時候
發現針對頁面上的操作並不是那麼的順心
舉個例子:
app.js中做一個route希望能夠將值往前端(.ejs)帶,但是前端implement了express-partials的模組,希望把頁面用template的方式組織起來,並且在template page中會用到一部分的參數... 假設有時個route用到這個template,則每個route都必須把參數設定進去,否則後端會接收到"not defined"的錯誤訊息...

上面例子的片段程式碼如下:

[app.js]
app.get('/', function(req, res){
  res.render('index', { title: 'my express page' });
});

[index.ejs]
<% if(user) { %>
<%= user %>
<% } %>

執行時候會有Exception:
...(skip)
user is not defined
...(skip)

這部份的錯誤應該是Ejs在render page時候造成的,它直接throw Exception而會造成page終止render,在遍尋不著比較好的方法時,從某篇文章找到一些蛛絲馬跡...

原來Ejs使用"locals"這個物件來包裝頁面上會用到的所有參數,而經過ejs的scriptlet tag包裝起來的部分,可以直接使用locals裡面的參數,也就是說上面的app.js做page render時候:

res.render('index', { title: 'my express page' })

相當於把title這個參數與ejs頁面的locals變數做整合
亦即ejs頁面操作:

<%=title%>


<%=locals.title%>

是相等的,但是直接操作title屬性時候,會被ejs compile成runtime exception,這導致如果在ejs中執行下面判斷會出錯;

<% if(user) { .... %>

因為實際上locals.user不存在,且ejs compiler會將不存在的狀況throw exception...

解決方式,直接使用locals來判斷裡面是否有user這個變數...,因此改寫上面的判斷後:

<% if(locales['user']) { .... %>

應該就可以正常運作...


2013年9月23日 星期一

尋找Google的創新: Google Cloud Platform - CloudSQL使用過程記錄

尋找Google的創新: Google Cloud Platform - CloudSQL使用過程記錄: 今天介紹GCP(Google Cloud Platform)之下的DB生力軍:CloudSQL 透過新版本的Cloud Console( https://cloud.google.com/console) 來建立一個Cloud MySQL instance並不難,原則上是填妥資料...

2013年9月17日 星期二

關於ewant育網

MiCloud與育網

育網(ewant)是最近Host在MiCloud上的MOOCs服務,透過交大熱心的教授與同學發起,經過介紹到MiCloud上建置服務,經過與MiCloud幾番討論後,平台已經於9/18上線,歡迎大家現在就加入育網(註冊),一起體驗育網評台!

關於ewant育網 (http://www.ewant.org) 

ewant育網平台是由兩岸五校交通大學 (包括上海交通大學、西安交通大學、西南交通大學、北京交通大學及國立交通大學) 共同合作發起、以全球華人為主要服務對象的開放教育平台,為所有想要學習的華人提供免費的課程及學習資源。本平台以社會企業的精神經營及推動,獲得的所有盈餘將全部再投入育網平台及開放教育的推動。

課程、微學程及認證機制 

ewant育網平台會持續號召大陸、台灣、港澳與歐美的重點大學及頂尖教師提供優質的免費課程,課程內容包含課程大綱、教學影片、講義、作業測驗及補充教材等。除此之外,平台也提供師生彼此之間多樣的互動交流機制,並在網路上形成學習社群,儘量讓學習者在線上學習的環境中產生如同身處傳統教室的臨場感。學習者更可以依照自己的興趣及時間彈性調配選修課程,突破時間與空間的限制,方便的隨時、隨地、隨興取得學習資源。
此外,我們率先在開放教育平台上推廣「微學程」的概念。所謂微學程就是一組經過精心設計、有系統關係的課程。每一個微學程包含三門以上課程,課程彼此間有明確的連貫性及深入淺出的安排,每一個微學程的課程將在1-2年間陸續開出,讓學習者可以依循這些規畫,進行有系統及有計畫的學習。學完這一組經過設計的課程後,學習者將更能完整的了解及應用一門學問。
育網平台提供完整的在線教育模式,經過教學互動及學習評量等運作機制,最終可以提供課程修課通過證明。我們也將與企業界合作,透過育網平台協助企業進行教育訓練及徵選所需人才。

我們的願景 

華人地區擁有全世界最多的高等教育人口及網路使用人口,在全球化的開放教育潮流中,華人應該居於不可忽視、甚至領導的地位。我們期許 ewant 育網能起示範作用,突破大學的藩籬,讓所有華人都能無償享受到高品質的教育資源及免費的終身教育,真正達到至聖先師孔子千年以前所說「有教無類」的期望。