【问题标题】:NestJs - How do I download objects as json files locally?NestJs - 如何在本地将对象下载为 json 文件?
【发布时间】:2021-11-03 05:02:06
【问题描述】:
所以我将我的 NestJs 应用程序连接到 mongoDB/Mongoose。我想获取存储库中的所有内容并将其作为 json 文件保存在本地计算机上。任何人都可以建议如何去做吗?
backup.service.ts
@Injectable()
export class BackupService {
constructor(private userService: UserService) {}
private async getUsers(): Promise<User[]> {
return await this.shiftService.getMany();
}
public async downloadUserData() {
const users = await this.getUsers();
// next step to download as json file to local computer?
}
}
任何建议将不胜感激!
【问题讨论】:
标签:
json
file
download
nestjs
fs
【解决方案1】:
您需要使用 Node 的 fs 模块将数据写入文件。您将能够执行以下操作:
import { writeFile } from 'fs/promises';
import { join } from 'path';
@Injectable()
export class BackupService {
constructor(private userService: UserService) {}
private async getUsers(): Promise<User[]> {
return await this.shiftService.getMany();
}
public async downloadUserData() {
const users = await this.getUsers();
await writeFile(join(process.cwd(), 'db', 'users.json'), JSON.stringify(users));
}
}
这应该将数据写入位于<projectRoot>/db/users.json 的 JSON 文件。请记住,这是直接写入,而不是append,因此其中的任何数据都将被覆盖。