Hello Bucky!
这个系列教程的目的是用最短的时间让您能快速体验Bucky框架,并对一些基础概念有一些感性的理解。让我们开始吧!第一篇文章我们会完成环境的搭建,并把一个最简单的用户登陆/注册的服务运行起来。
准备开发环境
安装最新版本的nodejs 8.9.1 LTS,以及npm工具 在各个操作系统上安装nodejs请参考 https://nodejs.org/en/
- windows: 下载https://nodejs.org/en/ LTS版
- mac: 下载https://nodejs.org/en/ LTS版 或者 brew install nodejs@8.9.1
安装buckyos sdk
npm install -g buckyos
得到一个有效的bucky appid
在www.buckycloud.com登陆bucky账号,然后进入控制面板。
在应用控制面板左侧点击添加应用
,填写应用的友好名称为Demo.
应用创建成功后在左侧点击应用名,会进入应用的控制面板。可以看到应用的各种信息和统计数据,这里我们只要看一下appid就好了。
建立代码目录
cd {{你喜欢的目录}}
mkdir demo
安装Demo代码
cd demo
bucky init -i
bucky init -i是使用交互式命令行来创建一个bucky解决方案。我们的选项如下
解决方案类型:
────────────────────
1. 示例
2. 新建解决方案
$请选择解决方案类型[1/2]:
选择1. 创建示例解决方案 然后在示例列表里
示例项目列表:
────────────────────
1. HelloBucky
2. minichat
3. mysql
$选择示例项目序号:
继续选择1,创建HelloBucky.
自此,初始化成功。
发布代码准备运行
输入命令
bucky build
运行该命令会要求使用开发者账号登录并给项目设置一个有效的appid。 根据提示输入用户名密码:
$请输入用户名:example-user
$请输入密码:*****
验证成功后会自动拉取可用的appid列表(appid则需要在www.buckycloud.com网站后台预先创建),选择一个输入即可:
--------------------------------
all appids for user:example-user
--------------------------------
1: appname: Demo , appid: 4w9aAOd3MX
2: appname: example2 , appid: mxkazUeJ0D
--------------------------------
$请选择app序号:
紧接着就会开始执行完整的构建过程,build
实际上是一个复合命令,不带参数-e可以看到该命令实际执行的是下面命令的序列
bucky compile
bucky proxy
bukcy stop
bucky pub
bucky start
完成了代码编译
,生成代理包
,停止应用服务
,上传代码
,运行服务
的一整套操作。熟练后可以根据实际需要单独调用子命令。
重置Knowledge
每个bucky应用程序有一个全局配置,称之为Knowledge
。Knowledge的本地配置默认放在根目录下的knowledge.json。到了这里我们还没有完成运行前的准备工作,我们还需要更新一次应用程序的Knowldege。由于这个操作涉及到应用程序的全局配置的更新,我们提供了单独的命令来操作:
bucky k -reset
事实上,用户并不需要在每次build
之后都重置Knowldege
,只有在应用程序的Knowldege
配置(默认在根目录下的knolwdeg.json)更新之后,需要重置。
设置knwoledge成功后就已经做好了运行服务的全部准备工作
测试服务
代码简介
这个小demo实现了一个非常简单的账号管理服务,在./src/account/account.js里提供两个接口:
- signup会在系统里创建一个账号
- 如果用户名没有被使用,则返回成功
- 如果用户名已经被使用过就会返回用户已存在
- signin会进行一次账号的登陆验证,如果用户名和密码输入正确就会成功。
根据上述接口定义,在./test/account/test_account.js中包含了一个简单的单元测试:
- 先注册,然后再用同样信息注册会返回用户已存在;
- 用正确的用户密码登陆成功。
执行测试
对服务进行正常的测试命令也很简单:
bucky run -main ./test/account/test_account.js
测试通过就表示服务已经正常的运行起来了,是不是非常的简单~。
bucky工具默认情况下把测试代码的日志级别设置为了error, 所以输出比较简洁,如果想查看更多日志可以通过
-blog_level level
来设置,例如:
bucky run -main ./test/account/test_account.js -blog_level info
将会打开测试代码的info级别日志,则可以看到许多bucky运行时在本地执行的日志信息。
进行本地调试
在把代码发布到正式环境之前,我们当然需要进行开发测试。 bucky框架支持全本地调试模式,可以非常方便的使用喜欢的js debug来调试业务逻辑。
预先准备:
- 如果使用了mysql,则需要本地安装mysql。
- 如果使用了mongodb,则需要本地安装mongodb。
- 如果使用了redis,则需要本地安装redis,并启动。
- 使用
bucky config -localdebug
配置对应的用户名、密码。
本地调试:
bucky debug -main ./test/account/test_account.js
调试命令和运行命令的差别很小,但跑起来的时候并不需要和buckycloud的云服务进行任何通信,一切都是在本地完成的。
如果想使用Visual Studio Code调试器来调试,可以通过-vscode
选项获得准备好的配置信息:
bucky debug -main ./test/account/test_account.js -vscode
该命令会显示Visual Studio Code的调试配置,类似下面
{
"type": "node",
"request": "launch",
"name": "local-debug",
"program": "/usr/local/lib/node_modules/buckyos/tools/node_loader.js",
"args": [
"/usr/local/lib/node_modules/buckyos/tools/node_loader.js",
"-main",
"/Users/admin/tmp/test/account/test_account.js",
"-app",
"/Users/admin/tmp/dist/bucky/bucky_meta.json",
"-packages_dir",
"/Users/admin/tmp/dist/bucky",
"-local_debug",
"/Users/admin/tmp/dist/bucky/knowledges.json"
],
"cwd": "/Users/admin/tmp/test"
}
即使您不习惯使用vscode,也可以通过阅读这个配置,去配置你喜欢的调试器。
总结
通过学习第一个教程,我们对使用bucky框架进行开发的全流程都有了一个基本的体验,下一章我们会对demo里的代码进行分析,进一步的了解如何使用bucky框架。