NestJs - 如何在本地将对象下载为 json 文件?

NestJs - How do I download objects as json files locally?

所以我将我的 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?

  }
}

如有任何建议,我们将不胜感激!

您需要使用 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,因此那里的任何数据都将被覆盖。