./src/index.js
文件(或基于 TypeScript 的项目中的 ./src/index.ts
文件)包含全局 register、bootstrap 和 destroy 函数,可用于添加动态和基于逻辑的配置。
这些函数可以是同步的、异步的,也可以返回一个承诺。
mermaid
flowchart TB
A([The Strapi application starts.]) --> B{"register()"}
B -- The Strapi application is setup. --> C
C{"bootstrap()"} -- The Strapi back-end server starts. --> D
D(Request)
D
click B "#register"
click C "#bootstrap"
click D "/dev-docs/backend-customization/requests-responses"
Synchronous function
js
Javascript
js
module.exports = {
register() {
// some sync code
},
bootstrap() {
// some sync code
},
destroy() {
// some sync code
}
}
Asynchronous function
js
Javascript
js
module.exports = {
async register() {
// some async code
},
async bootstrap() {
// some async code
},
async destroy() {
// some async code
}
}
Function returning a promise
js
Javascript
js
module.exports = {
register() {
return new Promise(/* some code */)
},
bootstrap() {
return new Promise(/* some code */)
},
destroy() {
return new Promise(/* some code */)
}
}
Register
register
生命周期函数位于 ./src/index.js
(或 ./src/index.ts
)中,是一个在应用程序初始化之前运行的异步函数。
它可用于:
register()
是 Strapi 应用程序启动时发生的第一件事。这发生在任何设置过程之前,并且您无法访问“register()”函数中的数据库、路由、策略或任何其他后端服务器元素。
Bootstrap
bootstrap
生命周期函数位于 ./src/index.js
(或 ./src/index.ts
)中,每次服务器启动时都会调用该函数。
它可用于:
- 如果没有管理员用户,则创建一个管理员用户
- 用一些必要的数据填充数据库
- 为 基于角色的访问控制 (RBAC) 功能声明自定义条件
bootstrapi()
函数在后端服务器启动之前但在 Strapi 应用程序设置之后运行,因此您可以从 strapi
对象访问任何内容。
您可以在终端中运行 yarn strapi console
(或 npm run strapi console
)并与 strapi
对象交互。
销毁
destroy
函数位于 ./src/index.js
(或 ./src/index.ts
)中,是一个在应用程序关闭前运行的异步函数。
它可用于正常使用: