Page Contents

Use the LoopBack command-line tool, slc loopback, to quickly create a LoopBack application, models, and data sources.  

你可以通过LoopBack 命令行程序 - ”slc loopback” 创建一个框架应用(Scaffold)。

创建一个新应用

使用 application generator 创建一个型应用

$ slc loopback

LoopBack 应用生成器会提示你输入应用的名称。

输入loopback-getting-started作为项目的名称。 然后输入项目的目录(直接按回车会将项目名称作为目录)

_-----_
    |       |    .--------------------------.
    |--(o)--|    |  Let's create a LoopBack |
   `---------´   |       application!       |
    ( _´U`_ )    '--------------------------'
    /___A___\
     |  ~  |
   __'.___.'__
 ´   `  |° ´ Y `
[?] What's the name of your application? loopback-getting-started
[?] Enter name of the directory to contain the project: loopback-getting-started

生成框架应用包含以下操作:

  1. 初始化项目的目录结构
  2. 创建默认的JSON文件
  3. 创建默认的JavaScript文件
  4. 下载并安装所有的Node依赖模块 (就好比你手工执行 npm install).

当框架应用创建完成后,应用生成器(application generator)将会显示一些建议的步骤帮助你运行这个框架应用

Next steps:
  Change directory to your app
    $ cd loopback-getting-started
  Create a model in your app
    $ slc loopback:model
  Optional: Enable StrongOps monitoring
    $ slc strongops
  Run the app
    $ slc run .

创建数据模型

现在我们将要创建一个_CoffeeShop的数据模型,完成之后我们将获得一组完整的REST API。_

首先进入项目目录,然后使用LoopBack model generator:

$ cd loopback-getting-started
$ slc loopback:model

模型生成器(model generator)会提示你所需的数据模型名字。在这里,我们输入 CoffeeShop:

[?] Enter the model name: CoffeeShop

然后,模型生成器(model generator)会要求你输入连接数据模型的数据源。

到目前为止,我们只有一个默认的内存数据源(in-memory data source),按回车选择。

...
[?] Select the data-source to attach CoffeeShop to: (Use arrow keys)
❯ db (memory)

模型生成器(model generator)会提示你输入数据模型的base class。由于我们的CoffeeShop模型需要有存储功能,因此我们选择PersistedModel作为CoffeeShop的base class。

[?] Select model's base class: (Use arrow keys)
  Model
❯ PersistedModel
  ACL
  AccessToken
  Application
  Change
  Checkpoint

所有需要连接至数据源(例如数据库)的模型都继承自PersistedModel。模型间的继承关系请参考 LoopBack 核心概念

LoopBack可以根据你的数据模型自动生成REST API。在此模型生成器(model generator)会询问你是否需要生成REST API,请输入回车继续。

[?] Expose CoffeeShop via the REST API? (Y/n) Y

默认情况下LoopBack的REST API 的地址会自动使用模型名字的复数状态(比如 CoffeeShop 会绑定到 /CoffeeShops 上)。当然你也可以绑定到其名字上。在本教程中,我们使用默认形式,所以请输入回车继续。

[?] Custom plural form (used to build REST URL):

每个数据模型都会有属性,所以我们在这一步中定义一个CoffeeShop的数据属性叫做”name”用于描述CoffeeShop的名称。

先输入属性名称”name”,然后选择数据类型为“string”,由于默认的数据类型为”string”, 所以你可以直接输入回车继续。

Let's add some CoffeeShop properties now.
Enter an empty property name when done.
[?] Property name: name
   invoke   loopback:property
[?] Property type: (Use arrow keys)
❯ string
  number
  boolean
  object
  array
  date
  buffer
  geopoint
  (other)

每个属性都可以选择是否是必填项,在此我们输入 y 让 “name” 属性成为必填项。

[?] Required? (y/N)

最后当系统提示输入下一个属性时,我们输入回车表示结束属性定义

了解项目结构

aa

LoopBack项目结构有3个子目录:

  • server - 放置Node应用的脚本和配置文件。
  • client - 客户端脚本,HTML,CSS文件。
  • common - client和server的公共文件。其中models子目录包含所有的模型JSON和js文件。
文件或文件夹 描述 如果进入到代码
根目录
package.json

标准的npm package文件。详见package.json

另外,还包含一个README.md 文件和node_modules 文件夹。

N/A
/server 文件夹 - Node应用的文件
server.js 应用的主文件  N/A
config.json 应用配置文件。详见 config.json. app.get('setting-name')
datasources.json  数据源配置文件。详见 datasources.json。例子,见 Create new data source app.datasources['datasource-name']
model-config.json 模型配置文件。详见 model-config.json。更多信息,见Connecting models to data sources. N/A
middleware.json 中间件定义文件。详见 Defining middleware. N/A
/boot directory 在此添加脚本用来初始化应用。详见 boot scripts. 脚本会按照字母排序顺序执行。
/client 文件夹 -客户端应用文件
README.md LoopBack生成一个空的 README 文件。 N/A
Other 添加你的 HTML, CSS, 客户端JS文件。  
/common 文件夹 - 客户端和服务端共享的文件在此
/models directory

自定义模型文件:

  • Model definition JSON files, 按照 model-name.json约定命名;例如customer.json。
  • 自定义模型脚本按照 model-name.json约定命名;例如customer.js

更多信息,见 Model definition JSON fileCustomizing models.

Unable to render {include} The included page could not be found.

Node:
myModel = app.models.myModelName

如欲了解更多的关于项目目录结构的情况请参考 项目结构参考

运行应用程序

输入 slc run 就可以运行程序了

$ slc run
INFO strong-agent API key not found, StrongOps dashboard reporting disabled.
Generate configuration with:
    npm install -g strongloop
    slc strongops
See http://docs.strongloop.com/strong-agent for more information.
supervisor running without clustering (unsupervised)
Browse your REST API at http://0.0.0.0:3000/explorer
Web server listening at: http://0.0.0.0:3000/

If you want to run the server in a multiprocess cluster, use this command: 

如果你需要运行多个进程的集群,使用以下命令

$ slc run --cluster cpus

在浏览器中输入 http://0.0.0.0:3000/ (在某些系统中可能要使用 http://localhost:3000).  你会看到默认的服务器相应会是一个JSON, 这个JSON包含了目前的服务器状态。例如:

{"started":"2014-11-20T21:59:47.155Z","uptime":42.054}

再在浏览器中输入 http://0.0.0.0:3000/explorer 或者 http://localhost:3000/explorer.  你就能看到StrongLoop的API浏览器

</figure>

经过以上的简单步骤,我们创建了CoffeeShop模型,并为其定义了一个属性,并且将这个模型的REST API绑定到了HTTP上

Next: 在 使用API浏览器 中,你将会了解更多我们刚刚创建的REST API,并且练习一些使用方法。