我正在将项目从expressjs更改为nestjs。
在express中,我在app.ts中默认向数据库添加了一个admin用户。
像这样:
public async addDefaultAdmin() {
UserModel.find({ role: Roles.admin }).then(async (superAdmin) => {
if (superAdmin.length === 0) {
try {
const newUser = new UserModel({...});
await this.hashPassWord(newUser);
await newUser.save();
console.log("default admin successfully added.");
} catch (error: any) {
console.log(error);
}
}
});
}
我想知道我如何在NestJS中做到这一点?NestJS或typeOrm有这个问题的解决方案吗?
1条答案
按热度按时间k3bvogb11#
您可能需要使用生命周期事件。NestJS在应用程序启动和关闭期间触发事件。
根据文档,
onApplicationBootstrap()
事件可能对您的情况有所帮助。在所有模块初始化后但在侦听连接之前调用。
但是,NestJS在应用程序开始侦听之后不会公开钩子,因此在这种情况下,您需要在服务器可以侦听端口之后立即运行
bootstrap
函数内部的自定义函数。伪代码如下所示: