国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

datastack - 基于koa的RESTful框架

_ivan / 1032人閱讀

摘要:項目地址對開發者友好的輕量級中間件,基于。事實上,通過實現自己的類,你可以接入任何持久化方案。假如用到了中的一些高級功能事件訂閱等,不可避免的涉及到事件在之間同步等問題。而集群之間的問題,遠遠不止這一個。

項目地址: https://github.com/RobinQu/datastack

對開發者友好的輕量級RESTful中間件,基于koa。

我會陸續放出一下tutorials,這篇文章純屬datastack 101,希望勾起大家的興趣。

TL;DR
var datastack = require("datastack"),
    koa = require("koa");

var app = koa();
datastack(app, {
  storage: {
    type: "mongodb",
    uri: "mongodb://127.0.0.1:27017/zoo"
  }
});
app.resource("cats");
app.resource("dogs");
app.listen(porcess.env.PORT || 8888);
More fun Events subscription

https://github.com/RobinQu/datastack/blob/master/spec/ws_subscription_spec.js

datastack自帶的組件即可實現將事件的CRUD操作通過廣播,在客戶端:

var client = new Websocket("ws://localhost:8888/books/_subscription");
client.on("message", function(data) {
//json encoded string
var event = JSON.parse(data);
// event.type === "datastack:create"
// event.data === `storeKey`s of created records
});

通過datastack的notifier體系,可以輕松接駁Apple APN、Google Push Service,或者其他的sass服務(Mailgun、Urban Airship等),讓你快速實現簡潔的消息體系。

Data store

默認是利用mongo的,但相信不是每個人都喜歡mongo。事實上,通過實現自己的Storage類,你可以接入任何持久化方案。

例如,為測試而寫的MemoryStore: https://github.com/RobinQu/datastack/tree/master/src/storage/memory

只需在創建datastack時給定storage屬性,

var koa = require("koa"),
      datastack = require("datastack"),
      MySuperStorage = require("my-super-storage");

var app = koa();
datastack(app, { storage: new MySuperStorage() });
StackApp

盡管datastack中大部分的組件都可以利用mixin的方式應用到原生的koa應用實例上,我們也提供一個koa的子類StackApp,它有如下優勢:

更多API shortcut

提供對cluster的一些支持(事件消息傳播等)

代碼會更簡潔

一個簡單的例子:

var datastack = require("datastack");
var app = datastack.app({
  storage: {
    type: "mongodb",
    uri: "mongodb://127.0.0.1:27017/datastack-test"
  }
});
app.resource("book");
app.resource("author");
var port = process.env.PORT || 8888;
app.listen(port, function() {
  console.log("server is up and running");
});
StackCluster

這是一個基于recluster 的封裝。假如用到了datastack中的一些高級功能(事件訂閱)等,不可避免的涉及到事件在cluster之間同步等問題。而集群之
間的問題,遠遠不止這一個。StackCluster是為了解決這些目前我碰到的一些問題,以及未來架構中可能出現的問題而準備的,推薦使用。

一個完整的例子: https://github.com/RobinQu/datastack/tree/master/example/cluster

項目狀況

其實在koa出來之后就在計劃這個,但是寫的好沒動力。目前大部分架構已完成,現在的任務:

寫更多的測試

更多的存儲方案(redis, mysql, 以及混合存儲,即多級緩存)

安全認證, 目前僅有有BasicAuth方案

消息通訊
4.1 更多渠道(APN、mail)
4.2 更多底層通訊方式 (zmq, AMQ)

datastack已經在我的個人項目中使用,但數量級還不夠證明它的穩定性。

貢獻

當然是越多越好了,datastack里面已經有很多打開的issues了。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/18730.html

相關文章

  • 造輪子系列 --- 注解、插件式node.js web / restful api 框架

    摘要:是基于的插件式開發框架和平常的相比,它無需另外綁定路由集合可拓展開發簡單,依照的著名依賴注入框架來制作,讓開發者專注于邏輯。采用多服務多進程架構來保證服務的穩定和快速響應能力。的中間件和的中間件保持兼容。默認使用的是后續會提供。 polix是基于koa v2.5.0的IOC、插件式開發框架,和平常的Node.js Web Framework相比,它無需另外綁定路由集合、可拓展、開發簡單...

    JowayYoung 評論0 收藏0
  • 最好用koa2+mysqlRESTful API腳手架,mvc架構,支持node調試,pm2部署

    摘要:基于構建的服務器腳手架這是一個基于的輕量級腳手架,支持支持使用編寫。腳手架可以根據不同的環境配置不同的信息運行價值,支持開發,測試,生產環境的不同參數配置。 #基于webpack構建的 Koa2 restful API 服務器腳手架 這是一個基于 Koa2 的輕量級 RESTful API Server 腳手架,支持 ES6, 支持使用TypeScript編寫。 GIT地址:https...

    xiongzenghui 評論0 收藏0
  • 基于JavaScript簡單解釋器實現(一)——表達式語法樹生成

    摘要:語法樹這一章主要是完成語法樹的生成。其中由于函數聲明部分過于簡單,沒必要生成語法樹,打算留到下一章一起處理。主循環結束后數據棧中的第一位元素則為語法樹。這是最后生成的語法樹總結總之,語法樹就算是生成完畢了。 前言 這個系列是關于CodeWars上的一條1Kyu題:Simple Interactive Interpreter。也就是實現一個簡單的交互式解釋器。題目地址:http://ww...

    DataPipeline 評論0 收藏0
  • 基于JavaScript小型Three-Pass編譯器實現

    摘要:也因此,語法樹生成過程異常簡單,基本是和波蘭表達式生成沒區別了。這個沒啥好講的了,就是波蘭表達式的生成略改而已,改動部分包括多了值棧和參數列表。其中立即量和參數這倆個分別是將數字和參數放入寄存器后壓棧。其他的操作則是首先分別執行子節點。 前言 昨天完成了codewars上的1級題簡單解釋器實現,今天突發奇想上去看看總共有多少1級題,然后發現總共也只有三題。而且,這三題都是編譯器解釋器相...

    lansheng228 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<