Deno将`localStorage`SQLite文件保存在哪里?

z6psavjg  于 2022-11-14  发布在  SQLite
关注(0)|答案(2)|浏览(180)

我刚刚通读了Web API's from the Deno docs,似乎localStorage是作为持久化SQLite实现的,而sessionStorage是作为内存中的SQLite实现的。
每当没有传递--location参数时,在我的文件系统中的哪里可以找到SQLite DB?

1tu0hz3e

1tu0hz3e1#

运行deno info会得到原始存储的值,即localStorage数据的存储位置。(更多信息请参见Where can I see deno downloaded packages?)

$ deno info
DENO_DIR location: /home/foo/.cache/deno
Remote modules cache: /home/foo/.cache/deno/deps
npm modules cache: /home/foo/.cache/deno/npm
Emitted modules cache: /home/foo/.cache/deno/gen
Language server registries cache: /home/foo/.cache/deno/registries
Origin storage: /home/foo/.cache/deno/location_data

.cache/deno/location_data中,您将看到不同存储的不同文件夹,具体取决于--location标志。
运行以下Deno脚本:

localStorage.setItem("myDemo", "Deno App");

现在您将在location_data中看到一个文件夹

# Replace with the location specified in <Origin Storage>
ls ~/.cache/deno/location_data/

你会得到类似这样的东西:

03c0fe5beae8096bc7bdbe2232281947d85e38f4f95f6397559f30b670cb8549/

如果您进入该文件夹,您将获得三个文件:

local_storage  local_storage-shm  local_storage-wal

您可以将local_storage文件加载到sqlite3中并查看数据:

# inside that folder
sqlite3 local_storage
select * from data;

输出将是setItem保存的数据

myDemo|Deno App

请记住,这是内部使用

exdqitrt

exdqitrt2#

根据Environment variables | Set Up Your Environment | Manual | Deno,此信息存储在DENO_DIR中:

  • DENO_DIR-这将设置存储来自CLI的缓存信息的目录。这包括缓存的远程模块、缓存的传输模块、语言服务器缓存信息和来自本地存储的持久化数据等项。这将默认为操作系统的默认缓存位置,然后位于deno路径下。

default目录为:

  • 在Linux/Redox上:$XDG_CACHE_HOME/deno$HOME/.cache/deno
  • 在Windows上:%LOCALAPPDATA%/deno(%LOCALAPPDATA% = FOLDERID_LocalAppData)
  • 在MacOS上:$HOME/Library/Caches/deno
  • 如果出现故障,它将回退到$HOME/.deno

相关问题