strongloop是一个基于nodejs的强大框架,几乎包含了移动开发全栈所需要的所有功能。2013年成立,很少的员工,一个技术驱动,执行力强大的团队。也是在13年我开始接触strongloop,当时是为了做nodejs方面的技术选型,看了许多框架,loopback是我觉得最酷的一个。我还记得当时是觉得loopback的文档太差(主要是跟在线的版本不一样),不知道能活多久所以才放弃了它。时隔一年回来看到这个绿油油的框架,这一年可真是突飞猛进呢。
全栈框架strongloop
strongloop基本提供了制作一个移动产品所有的框架和工具,从标准的backend server,devops,应用监控,。要想介绍完全strongloop的所有产品得写一个长篇连载了,这里只简单的浏览一遍。
loopback
一个功能很强大的webserver框架,隐约看到spring的影子...
sdk
这是当时我觉得strongloop最好用的一点:根据后端model自动生成对应的前端sdk。restful api
mean stack推动了所有新框架默认支持restful api,比如nodejs里的node-restify,sailjs之类的天生就是为了serve api的。strongloop还提供了一个用来设计api的工具(beta状态),当然跟raml比还是差不少的。data model
很容易创建数据模型,自动产生对应的restful api。connectors
当然可以对接各种数据库。strongloop controller
debug, package management, build, deploy, cluster, log等等一堆devops工具。application monitor
一堆监控服务器的模块。mbaas
使用strongloop,你也可以创建自己的leancloud啦,包括push,地理位置计算(geopoint),social login,user management,各种replication,offline sync(离线同步是个好东西),对接各种stroage云(aws,rackspace之类内置了的)。当然,其实这些都是loopback里提供的功能,意思是用strongloop得永生。开始
安装strongloop sudo npm install -g strongloop
创建一个应用 slc loopback(找个空白的目录哦) 它只会问你项目叫啥。
创建一个model slc loopback:model (是不是想起了yo generator~),然后它就会问一堆乱七八糟的问题了。
plural指的是restful api的route名,一个model对应的route默认情况下会被plural(复数化),比如post的路径是posts。
猜一下,像leancloud里类似,这时候应该去访问一个类似127.0.0.1:3000/xxx的地方看到他的后台吧~嗯 xxx=explorer http://127.0.0.1:3000/explorer 就能看到一个用swagger做的api dashboard。
看一下项目的结构,像meteor一样,loopback将js代码分成服务端(server),前端(client),以及共用部分(common,个人认为这种纯schema的方法比meteor分割的更清晰)。
略过后面的api explorer,如何连database,直接看如何在前端使用刚刚创建出来的api。loopback的做法是帮助你创建你当前api的各端sdk,目前只支持android/ios/angularjs。如果你用别的web框架可能就只能自力更生了。
创建自己的sdk lb-ng server/server.js client/lb-services.js 看看client/lb-services.js,不错吧~
嗯,你的前端工程师需要个文档?执行 lb-ng-doc client/lb-services.js 有时候需要在前面添加sudo(不知道为啥),然后访问 http://localhost:3030/ 就能看到文档啦~这个功能是基于docular做的。另外,如果你点loopback services进去没东西,别担心,刷新一下。
看看是不是很像早期angular的文档~
api designer
相信很多程序员喜欢parsejs或者leancloud的原因都是那个图形化界面的model设计(或者叫api设计)后台。如果前面用的那个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官网右上角注册个账号(文档里居然写了on the bottom right is a link to go to the registration page on strongloop.com,你们不知道页面很容易改版么...)用注册的用户名登录进去看到api composer和profiler。bingo!各种玩耍吧!
p.s.如果这时候你遇到了类似syntaxerror: cannot parse package.json: unexpected token e这样的问题,检查一下你工程根下的package.json里是不是被jslint搞乱了(i dont't know why...)
好吧好吧,我告诉你这个beta还真是特别beta...尽量不要在之前写过代码的项目里用...
懒人们
如果你缺个可以玩耍的mongodb:mongolab
如果你想要个可以协作开发的ide:koding
如果你想要个便宜好用的vps:digital ocean
如果你觉得他们家不够便宜:serverbear
如果你连vps都不想要,只想部署个node项目:nodejitsu
如果你想设计个api尽快给客户端同学,又不想搭node,找地方部署:apiary
如果你想做(抄)个app,又不想花钱雇一堆人:appdupe
30天结束
这是最后一篇30hackdays啦,终于熬出来了(吁...)。anyway,这三十天我学到了很多,如何寻找自己想要的服务,如何快速实现原型,如何比较开发者产品的竞品...
回头看,文章的内容肯定没有shekhar的那篇learning 30 technologies in 30 days: a developer challenge写的详尽(确实也没人家投入那么多时间精力),但我选择的技术更广泛(或者叫更乱七八糟),对我也是一种扩展视野的过程。
希望我的这个系列能给大家一些启发。技术并不都是那么深奥难懂,拥抱它也许不能立刻涨工资,但至少在寒冷的日子里,没有wifi,孤独寂寞冷的时候,还可以打开浏览器的console,输入个while,来暖暖手。
下面
嗯,不是你想的那个,也不是用来吃的。之后我会继续时不时写一些发现的好玩的开发者服务;另外,我会写一个strongloop的系列文章来介绍这个框架更多的特性,希望大家能够尝试这个迅猛发展的产品。
再做个小广告:最近在做一个小班(免费),专门教高中生技术,直到达成可以自行参加hackathon的程度。如果身边有高中生对技术感兴趣,欢迎联系我~ fxp007@gmail.com
ok,那些输了的情自行来约~