Hello Bucky!

这个系列教程的目的是用最短的时间让您能快速体验Bucky框架,并对一些基础概念有一些感性的理解。让我们开始吧!第一篇文章我们会完成环境的搭建,并把一个最简单的用户登陆/注册的服务运行起来。

准备开发环境

安装最新版本的nodejs 8.9.1 LTS,以及npm工具 在各个操作系统上安装nodejs请参考 https://nodejs.org/en/

安装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里提供两个接口:

  1. signup会在系统里创建一个账号
    • 如果用户名没有被使用,则返回成功
    • 如果用户名已经被使用过就会返回用户已存在
  2. signin会进行一次账号的登陆验证,如果用户名和密码输入正确就会成功。

根据上述接口定义,在./test/account/test_account.js中包含了一个简单的单元测试:

  1. 先注册,然后再用同样信息注册会返回用户已存在;
  2. 用正确的用户密码登陆成功。

执行测试

对服务进行正常的测试命令也很简单:

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来调试业务逻辑。

预先准备:

  1. 如果使用了mysql,则需要本地安装mysql。
  2. 如果使用了mongodb,则需要本地安装mongodb。
  3. 如果使用了redis,则需要本地安装redis,并启动。
  4. 使用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框架。

results matching ""

    No results matching ""