Nodejs全棧框架StrongLoop推薦

StrongLoop是一個基于Nodejs的強(qiáng)大框架,幾乎包含了移動開發(fā)全棧所需要的所有功能。2013年成立,很少的員工,一個技術(shù)驅(qū)動,執(zhí)行力強(qiáng)大的團(tuán)隊。也是在13年我開始接觸StrongLoop,當(dāng)時是為了做nodejs方面的技術(shù)選型,看了許多框架,LoopBack是我覺得最酷的一個。我還記得當(dāng)時是覺得LoopBack的文檔太差(主要是跟在線的版本不一樣),不知道能活多久所以才放棄了它。時隔一年回來看到這個綠油油的框架,這一年可真是突飛猛進(jìn)呢。

全棧框架StrongLoop
StrongLoop基本提供了制作一個移動產(chǎn)品所有的框架和工具,從標(biāo)準(zhǔn)的Backend server,Devops,應(yīng)用監(jiān)控,。要想介紹完全StrongLoop的所有產(chǎn)品得寫一個長篇連載了,這里只簡單的瀏覽一遍。
LoopBack
一個功能很強(qiáng)大的WebServer框架,隱約看到Spring的影子...
SDK
這是當(dāng)時我覺得StrongLoop最好用的一點(diǎn):根據(jù)后端Model自動生成對應(yīng)的前端SDK。RESTful API
MEAN stack推動了所有新框架默認(rèn)支持RESTful API,比如Nodejs里的Node-restify,Sailjs之類的天生就是為了serve API的。StrongLoop還提供了一個用來設(shè)計API的工具(beta狀態(tài)),當(dāng)然跟RAML比還是差不少的。Data model
很容易創(chuàng)建數(shù)據(jù)模型,自動產(chǎn)生對應(yīng)的RESTful API。Connectors
當(dāng)然可以對接各種數(shù)據(jù)庫。StrongLoop Controller
Debug, Package Management, Build, Deploy, Cluster, Log等等一堆Devops工具。Application Monitor
一堆監(jiān)控服務(wù)器的模塊。mBaaS
使用StrongLoop,你也可以創(chuàng)建自己的LeanCloud啦,包括Push,地理位置計算(Geopoint),Social Login,User management,各種Replication,Offline sync(離線同步是個好東西),對接各種Stroage云(AWS,Rackspace之類內(nèi)置了的)。當(dāng)然,其實(shí)這些都是LoopBack里提供的功能,意思是用StrongLoop得永生。開始
安裝StrongLoop sudo npm install -g strongloop
創(chuàng)建一個應(yīng)用 slc loopback(找個空白的目錄哦) 它只會問你項(xiàng)目叫啥。
創(chuàng)建一個Model slc loopback:model (是不是想起了Yo generator~),然后它就會問一堆亂七八糟的問題了。

plural指的是RESTful API的route名,一個Model對應(yīng)的route默認(rèn)情況下會被plural(復(fù)數(shù)化),比如Post的路徑是Posts。
猜一下,像LeanCloud里類似,這時候應(yīng)該去訪問一個類似127.0.0.1:3000/xxx的地方看到他的后臺吧~嗯 xxx=explorer http://127.0.0.1:3000/explorer 就能看到一個用Swagger做的API dashboard。

看一下項(xiàng)目的結(jié)構(gòu),像Meteor一樣,LoopBack將JS代碼分成服務(wù)端(server),前端(client),以及共用部分(common,個人認(rèn)為這種純schema的方法比Meteor分割的更清晰)。
略過后面的API Explorer,如何連Database,直接看如何在前端使用剛剛創(chuàng)建出來的API。LoopBack的做法是幫助你創(chuàng)建你當(dāng)前API的各端SDK,目前只支持Android/iOS/Angularjs。如果你用別的Web框架可能就只能自力更生了。
創(chuàng)建自己的SDK lb-ng server/server.js client/lb-services.js 看看client/lb-services.js,不錯吧~
嗯,你的前端工程師需要個文檔?執(zhí)行 lb-ng-doc client/lb-services.js 有時候需要在前面添加sudo(不知道為啥),然后訪問 http://localhost:3030/ 就能看到文檔啦~這個功能是基于Docular做的。另外,如果你點(diǎn)LoopBack Services進(jìn)去沒東西,別擔(dān)心,刷新一下。
看看是不是很像早期Angular的文檔~

API Designer
相信很多程序員喜歡Parsejs或者LeanCloud的原因都是那個圖形化界面的Model設(shè)計(或者叫API設(shè)計)后臺。如果前面用的那個"Yo generator"的API creator看起來還不夠貼心,你可以試試StrongLoop新推出的StrongLoop Studio beta。
在工程根目錄下
sudo npm install -g http://get-studio.strongloop.com/strong-studio.tgz 安裝Studio。啟動Studio strong-studio,自動打開瀏覽器去StrongLoop官網(wǎng)右上角注冊個賬號(文檔里居然寫了On the bottom right is a link to go to the registration page on strongloop.com,你們不知道頁面很容易改版么...)用注冊的用戶名登錄進(jìn)去看到API Composer和Profiler。Bingo!各種玩耍吧!

p.s.如果這時候你遇到了類似SyntaxError: Cannot parse package.json: Unexpected token e這樣的問題,檢查一下你工程根下的package.json里是不是被jslint搞亂了(I dont't know why...)
好吧好吧,我告訴你這個beta還真是特別beta...盡量不要在之前寫過代碼的項(xiàng)目里用...
懶人們
如果你缺個可以玩耍的Mongodb:Mongolab
如果你想要個可以協(xié)作開發(fā)的IDE:Koding
如果你想要個便宜好用的VPS:Digital Ocean
如果你覺得他們家不夠便宜:Serverbear
如果你連VPS都不想要,只想部署個Node項(xiàng)目:Nodejitsu
如果你想設(shè)計個API盡快給客戶端同學(xué),又不想搭Node,找地方部署:Apiary
如果你想做(抄)個APP,又不想花錢雇一堆人:Appdupe
30天結(jié)束
這是最后一篇30hackdays啦,終于熬出來了(吁...)。Anyway,這三十天我學(xué)到了很多,如何尋找自己想要的服務(wù),如何快速實(shí)現(xiàn)原型,如何比較開發(fā)者產(chǎn)品的競品...
回頭看,文章的內(nèi)容肯定沒有Shekhar的那篇Learning 30 Technologies in 30 Days: A Developer Challenge寫的詳盡(確實(shí)也沒人家投入那么多時間精力),但我選擇的技術(shù)更廣泛(或者叫更亂七八糟),對我也是一種擴(kuò)展視野的過程。
希望我的這個系列能給大家一些啟發(fā)。技術(shù)并不都是那么深奧難懂,擁抱它也許不能立刻漲工資,但至少在寒冷的日子里,沒有wifi,孤獨(dú)寂寞冷的時候,還可以打開瀏覽器的console,輸入個while,來暖暖手。
下面
嗯,不是你想的那個,也不是用來吃的。之后我會繼續(xù)時不時寫一些發(fā)現(xiàn)的好玩的開發(fā)者服務(wù);另外,我會寫一個StrongLoop的系列文章來介紹這個框架更多的特性,希望大家能夠嘗試這個迅猛發(fā)展的產(chǎn)品。
再做個小廣告:最近在做一個小班(免費(fèi)),專門教高中生技術(shù),直到達(dá)成可以自行參加Hackathon的程度。如果身邊有高中生對技術(shù)感興趣,歡迎聯(lián)系我~ fxp007@gmail.com
ok,那些輸了的情自行來約~

相關(guān)文章
node.js中的buffer.toString方法使用說明
這篇文章主要介紹了node.js中的buffer.toString方法使用說明,本文介紹了buffer.toString的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
nodejs和npm版本不匹配:ERROR:?npm?v9.5.1?is?known?not?to?run
本文主要介紹了nodejs和npm版本不匹配:ERROR:?npm?v9.5.1?is?known?not?to?run?on?Node.js,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Node.js如何響應(yīng)Ajax的POST請求并且保存為JSON文件詳解
這篇文章主要介紹了關(guān)于Node.js是如何響應(yīng)Ajax的POST請求并且保存為JSON文件的相關(guān)資料,文中介紹的很詳細(xì),對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03
express框架中使用jwt實(shí)現(xiàn)驗(yàn)證的方法
這篇文章主要給大家介紹了關(guān)于express框架中使用jwt實(shí)現(xiàn)驗(yàn)證的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用express具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Node.js連接mongo數(shù)據(jù)庫上傳文件的方法步驟
本文主要介紹了Node.js連接mongo數(shù)據(jù)庫上傳文件的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
[將免費(fèi)進(jìn)行到底]在Amazon的一年免費(fèi)服務(wù)器上安裝Node.JS, NPM和OurJS博客
此文是介紹如何在Amazon的一年免費(fèi)計劃上安裝Node.JS, NPM還有搭建OurJS博客系統(tǒng)。,需要的朋友可以參考下2014-08-08

