英文地址:
http://loopback.io/doc/en/lb3/Creating-an-application.html
创建应用程序
使用应用程序生成器
创建应用程序的最简单方法是使用应用程序生成器。
可以通过从头开始编写一个LoopBack应用程序,但应用程序生成器可以做所有的“繁重的”来创建标准项目布局的基本脚手架。然后,您可以使用CLI工具自定义应用程序以满足您的需求。
一般来说,文档假设您已经使用应用程序生成器创建了应用程序。
创建应用程序后,您可能需要配置它,例如:关闭堆栈跟踪,禁用API资源管理器,并检索环境变量的值。有关详细信息,请参阅 环境特定配置。
标准工程布局
server 目录
- server.js - 主要应用脚本; 见下文。
- config.json - 全局应用程序设置,如REST API根,要使用的主机名和端口等。请参阅config.json。
- model-config.json - 将模型绑定到数据源,并指定模型是否暴露于REST之外。请参阅model-config.json。
- datasources.json - 数据源配置文件。请参阅datasources.json。
client 目录(除README存根之外为空)
- common/models目录 - 在使用模型生成器创建模型时创建。
每个模型的JSON文件和JavaScript文件(例如my-model.json和my-model.js)。
主应用脚本(server.js)
|
|
环境特定配置
概观
LoopBack应用程序具有以下类型的配置文件:
- 默认情况下, 应用范围配置文件server/config.json。您也可以使用 server/config.local.js 设置不能使用简单JSON的值。
- 默认情况下, 数据源配置文件server/datasources.json。您也可以使用 server/datasources.local.js 设置不能使用简单JSON的值。
- 默认情况下 ,模型的应用程序级配置server/model-config.json。
- 中间件配置文件,默认情况下 server/middleware.json。
- 缺省情况下 ,LoopBack组件的配置文件server/component-config.json。
注意: 使用*.js文件配置LoopBack应用程序将仅在原始.json文件保留到位时才起作用。而不是用.json文件替换文件.js ,您应该覆盖.json文件中的.js文件的值。也就是说,通过将默认.json文件保留为空,所有配置都可以在.js文件中完成。
LoopBack将始终加载以下配置文件(如果存在)
- server/config.json。
- server/config.local.json 或 server/config.local.js。
- server/datasources.json
- server/datasources.local.json 要么 server/datasources.local.js
- server/model-config.json
- server/model-config.local.json 要么 server/model-config.local.js
- server/middleware.json
- server/middleware.local.json 要么 server/middleware.local.js
- server/component-config.json
- server/component-config.local.json 要么 server/component-config.local.js
另外,当设置NODE_ENV环境变量时,LoopBack将从以下位置加载配置:
- server/config.env.json/js
- server/datasources.env.json/js
- server/model-config.env.json/js
- server/middleware.env.json/js
- server/component-config.env.json/js
env NODE_ENV的值(通常是“开发”,“分期”或“生产”)在哪里 。 这使您能够为开发,分期和生产环境设置配置。
注意:
LoopBack应用程序可以加载多个可能会相互冲突的配置文件。由优先级最高的文件设置的值将始终生效。优先事项是:
- 环境特定的配置,基于NODE_ENV的值; 例如,server/config.staging.json。
- 本地配置文件 ; 例如,server/config.local.json。
- 默认配置文件 ; 例如,server/config.json。
应用程序配置文件示例:
config.json
|
|
config.local.js
|
|
数据源配置文件示例:
datasources.json
|
|
datasources.production.js
|
|
datasources.staging.js
|
|
中间件配置文件的示例:
middleware.json
http://loopback.io/doc/en/lb3/middleware.json.
middleware.development.json
|
|
有关示例应用程序,请参见 https://github.com/strongloop/loopback-example-full-stack/tree/master/server。
重要:
即使使用环境特定的配置文件,LoopBack仍然需要默认的基本文件。JSON文件中的空对象就足够了。
应用范围配置
在其中定义应用程序服务器端设置 server/config.json。
您可以覆盖在其中设置的值 config.json :
- config.local.js 要么 config.local.json
- config.env.js 或者 , (通常 或 ) 的值 在哪里 。例如。config.env.jsonenvNODE_ENVdevelopmentproductionconfig.production.json
重要提示: 附加文件可以仅使用值类型(字符串,数字)覆盖顶级键。不支持嵌套对象和数组。
例如:
config.production.js
|
|
确保不返回堆栈跟踪
默认情况下,JSON回应中不会返回堆栈跟踪,但如果它们已被启用进行开发和调试,请确保它们已关闭生产。
- 将NODE_ENV环境变量设置为“production”
- 包括以下内容 server/middleware.production.json:
server/middleware.production.json
|
|
注: 该应用程序生成器创建一个middleware.developmnet.json与你的上述配置文件,因此,所有你需要做的就是确保NODE_ENV环境变量不是development。
禁用API资源管理器
当您开发应用程序时,LoopBack API Explorer非常棒,但出于安全考虑,您可能不希望在生产环境中公开它。
对于使用loopback-component-explorer的应用程序,在生产中禁用资源管理器:
- 将NODE_ENV环境变量设置为“production”。
- 然后在server/component-config.production.json:
server/middleware.production.json
|
|
在HTTP响应中包含堆栈跟踪
默认情况下,LoopBack 3.0应用程序可以从HTTP响应(典型的生产)中排除错误堆栈跟踪。对于开发和调试,您可能希望包含它们; 要这样做,设置NODE_ENV环境变量,development以便应用程序使用middleware.development.json。
该文件包括以下内容,其中包括HTTP响应中的堆栈跟踪:
|
|
数据源配置
您可以覆盖datasources.json 以下文件中设置的值 :
- datasources.local.js 要么 datasources.local.json
- datasources.env.js 或者 , 环境变量(通常为 或 ) 的值 在哪里 。例如,。datasources.env.jsonenvNODE_ENVdevelopmentproductiondatasources.production.json
示例数据源:
datasources.json
|
|
datasources.production.json
|
|
您还可以将文件配置为使用环境变量:datasource.env.js
datasources.production.js
|
|
在上面的例子中,运行export PRODUCTION=true(或set PRODUCTION=trueWindows)将加载数据源。
从环境变量获取值
使用此命令设置环境变量并在一个命令中运行应用程序:
|
|
或单独命令:
|
|
那么这个变量可以作为您的应用程序使用 process.env.MY_CUSTOM_VAR。
版本化您的API 编辑这个页面
您可以根据应用程序“主要”版本轻松地将版本控制添加到REST API路由中package.json。
config.local.js 在应用程序/server目录中添加一个名称 为以下代码的文件:
/server/config.local.js
|
|
这需要从version属性中的主要版本号package.json并将其附加到REST API根目录。如果您的应用程序的主版本为0,那么REST API根目录仍然是默认的 /api。
所以,例如,如果versionin package.json是2.0.1,那么默认情况下暴露的内置模型路由为:
|
|
现在暴露在:
|
|
标准项目结构 编辑这个页面
使用LoopBack的标准项目结构,以便更容易地开发和维护您的项目。
LoopBack项目文件和目录位于应用程序根目录下。在该目录中,标准的LoopBack项目结构具有以下子目录:
- server - 节点应用程序脚本和配置文件。
- client - 客户端JavaScript,HTML和CSS文件(仅限于LoopBack工具)。
- common - 客户端和服务器通用的文件。 该/models子目录包含模型JSON和JavaScript文件。
- definitions- API和产品定义YAML文件(仅限IBM API连接)。
注意: 客户端和服务器之间共享的模型JSON和JavaScript文件进入/common/models目录。仅服务器文件进入/server/models,客户端进入/client/models
顶级应用程序目录
文件或目录 | 描述 | 描述 |
---|---|---|
/node-modules 目录 | 包含指定为依赖关系的节点包package.json。更新npm install。 | N / A |
package.json | 标准npm包装规格。请参阅package.json。 | N / A |
README.md | Stub文件用于内部文档。 | N / A |
/ server目录 - 节点应用程序文件
文件或目录 | 描述 | 描述 |
---|---|---|
/boot 目录 | 添加脚本以执行初始化和设置。请参阅引导脚本。 | 脚本会按字母顺序自动执行。 |
/models 目录 | 仅限服务器的模型定义。 | 节点:myModel = app.models.myModelName |
component-config.json | 指定要加载的LoopBack组件。 仅由Strongloop工具创建。不用于API连接。 | |
config.json | 应用设置。请参阅config.json。 | app.get(‘setting-name’) |
datasources.json | 数据源配置文件。请参阅datasources.json。有关示例,请参阅创建新的数据源。 | app.datasources[‘datasource-name’] |
middleware.json | 中间件定义文件。有关详细信息,请参阅定义中间件。 | N / A |
middleware.development.json | 具有开发配置的中间件定义文件。有关详细信息,请参阅定义中间件。请参阅准备部署。 | |
model-config.json | 型号配置文件。请参阅model-config.json。有关详细信息,请参阅将模型连接到数据源。 | N / A |
server.js | 主应用程序文件。 | N / A |
/ client目录 - 客户端应用程序文件
文件或目录 | 描述 | 描述 |
---|---|---|
README.md | LoopBack生成器创建空README.md文件。 | N / A |
其他 | 添加您的HTML,CSS,客户端JavaScript文件。 |
/ common目录 - 共享应用程序文件
文件或目录 | 描述 | 描述 |
---|---|---|
/models 目录 | 自定义模型文件:1. 模型定义JSON文件,按照约定命名model-name.json; 例如customer.json。2. 按惯例命名的自定义模型脚本model-name.js; 例如,customer.js。有关更多信息,请参阅模型定义JSON文件和自定义模型。 见下面的注释。 | 节点:myModel = app.models.myModelName |
重要:
LoopBack 模型生成器 将骆驼壳模型名称(例如MyModel)自动转换为小写虚线名称(my-model)。例如,如果您使用模型生成器创建名为“FooBar”的模型,则会创建文件foo-bar.json并foo-bar.js输入common/models。然而,模型名称(“FooBar”)将通过模型的name属性来保留。