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
生成框架应用包含以下操作:
- 初始化项目的目录结构
- 创建默认的JSON文件
- 创建默认的JavaScript文件
- 下载并安装所有的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。 另外,还包含一个 | 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 file 和 Customizing models. Unable to render {include} The included page could not be found. | Node: |
如欲了解更多的关于项目目录结构的情况请参考 项目结构参考
运行应用程序
输入 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浏览器
经过以上的简单步骤,我们创建了CoffeeShop模型,并为其定义了一个属性,并且将这个模型的REST API绑定到了HTTP上