Deno实现了浏览器的绝大多数API,其中就有localStorage,所以我们的数据完全可以存储在这里面。
改造
让我们对user.service.ts改造下:
- 去除constructor
- 修改getAll
async getAll(): Promise<User[]> {
const usersStr = localStorage.getItem("users");
if (usersStr) {
return JSON.parse(usersStr);
}
return this.users;
}
- 修改saveToFile
private saveToFile(users: User[]) {
localStorage.setItem("users", JSON.stringify(users));
}
重启服务,在页面调用接口看,是不是与原来一模一样?
数据存哪儿了
你可能会有个疑问,localStorage把数据存哪儿了?
在命令窗口,执行一下deno info可以看到:
打开最后一个目录,里面有几个新的文件:
不过内容是二进制,无法阅读。
作业
思考下,我们这次使用文件或localStorage持久化了数据,但上面的代码有什么问题?还能优化吗?