Pages

搜尋此網誌

2014年5月17日 星期六

sails new feature introduction

sails new feature introduction

上一篇 sails 0.10 beta upgrade and intorduction 說明了 sails 的升級與舊版的差異,這篇來介紹幾個目前筆者有使用到的新功能。

內建 promise

比如說,在上一篇有介紹的 .done() -> .exec() 也就是在 sails 中 model 的增修改查中已經綁定 promise 來進行 flow control,我們可以這樣使用:

User.findOne(1).then(function(user) {
  console.log("user is create name: " + user.name);
  return [user.id];
}).then(function(userId) {
  console.log("user.id is " + userId);
  return [userId];
}).then(function(userId) {
  return console.log("user.id again is " + userId);
}).fail(function(err) {
  console.log("fail!!!");
  console.log(err);
  return done();

透過 then 來 sync 同步執行處理,其中 return [userId];,會傳入下一個 then 的 callback,當然也可以多個,對應的 callback 只要有同樣 parameter 數即可。

除了透過 model 來進行 flow control 之外,也可以直接使用 promise,有興趣可以參考下面連結的討論: How to deal with promises in loop?

sails console

這也是 0.10 新增的功能,讓我們可以在 command line 進行專案的測試,比如下面指令:

User.create({name:"newuser"}).exec(console.log);

其中 console.log 會把結果輸出到 terminal,觀看處理解果。

Model Associations

sails 0.10 new feature,個人覺得很方便的功能,畢竟之前使用 java grails 被 gorm 養壞了,雖然 sails 目前 Model Associations 沒有像 grails gorm 那樣的方便查詢完 user 後可以直接 user.posts[0].comments,不過通常方便是要犧牲效能,至少有類似的作法可以解省一些 codeing,相關定義如下:

官方範例其實還蠻清楚的,有需要可以點選連結了解一下。

大致上新功能就如上述,有什麼新發現在跟大家分享囉!

張貼留言