背景:
在写后端时,如果直接在代码中写数据库连接需要的用户名和密码,那么当我们使用git上传到公开仓库时,会导致这些隐私信息的泄露。
解决办法:
将隐私信息写到一个单独的文件里,并添加到.gitignore中。
例子:
(1)在.secrect文件夹中新建database.ts文件。
// .secret/database.ts
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
const MYSQL_CONFIG : TypeOrmModuleOptions = {
type: "mysql",
host: *,
port: *,
username: *,
password: *,
database: *,
synchronize: true,
retryDelay: 500,
retryAttempts: 10,
autoLoadEntities: true,
}
export { MYSQL_CONFIG }
(2)添加到.gitignore文件。
// .gitignore
.secret
(3)在使用时导入。
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { MYSQL_CONFIG } from '../.config/database';
@Module({
imports: [TypeOrmModule.forRoot(MYSQL_CONFIG)],
controllers: [AppController],
providers: [AppService],
})
export class AppModule { }
缺点:
在部署应用到服务器时,需要额外使用SCP将隐私信息文件传到服务器。