Important:
Prerequisite: Install StrongLoop software as described in 安装 StrongLoop.
Recommended: Read LoopBack 核心概念.
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
Note:
你当然可以用其他名字取代 “loopback-getting-started” 作为项目的名称,但请务必将本教程中所有相应使用”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
Important:
下面描述使用slc loopback命令创建的项目的结构。LoopBack并不要求你一定要按照下面的结构来,但是如果你不使用这个结构的话,你就不能使用slc loopback
命令来修改或扩展你的应用。
LoopBack项目结构有3个子目录:
server
- 放置Node应用的脚本和配置文件。client
- 客户端脚本,HTML,CSS文件。common
- client和server的公共文件。其中models子目录包含所有的模型JSON和js文件。
Note:
所有你模型的JSON和JS文件都放在/common/models
文件夹下。
文件或文件夹 | 描述 | 如果进入到代码 |
---|---|---|
根目录 | ||
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/
Note:
使用 slc (StrongLoop Controller) 启动服务器程序和直接使用 node 命令启动服务器程序在本质上是一样的。但是通过 slc 启动会带个你额外的一些功能,比如多进程集群,Logging, 运行状态监测等。请参考 Operating Node applications 和 Getting Started 了解更多关于slc命令的用法。
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浏览器