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
,因此那里的任何数据都将被覆盖。
所以我将我的 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
,因此那里的任何数据都将被覆盖。