Deno 运行 - 未捕获的 PermissionDenied:网络访问“0.0.0.0:8000”,运行 再次使用 --allow-read 标志

Deno run - Uncaught PermissionDenied: network access to "0.0.0.0:8000", run again with the --allow-read flag

当我尝试 运行 我的第一个 deno 程序

时收到错误消息
deno run server.ts

Error : Uncaught PermissionDenied: network access to "0.0.0.0:8000", run again with the --allow-read flag

然后我 运行 添加“--allow-read”标志的相同命令如下

deno run --allow-read flag server.ts 

错误消失了。因为我在单独的沙箱中以 deno 运行s 的形式读取文件,所以默认情况下它无法访问文件系统。 我们需要 agree/provide 在 运行 宁脚本时通过安全标志访问读取文件。

所有安全标志也应该像下面的格式一样写在后面

$ deno run {any security flag}  {script file name/fullpath } 

Deno 默认是安全的。因此,除非您特别启用它,否则 deno 模块没有文件、网络或环境访问权限。访问安全敏感区域或功能需要使用在命令行上授予 deno 进程的权限。

如果您正在访问网络,则需要在 运行 服务器时传递 --allow-net 标志,如果您的应用程序具有读取和写入文件的功能,则需要传递 --allow-read--allow-write 标志。

所以,

deno run --allow-net --allow-read server

您应该授予权限,您可以通过 运行 以下方式执行此操作:

deno run --allow-net server.ts 

或者

deno run --allow-read server.ts

或者

deno run --allow-net --allow-read server.ts

Deno 是 运行默认情况下安全的时间。这意味着您需要为 运行 特权操作明确提供权限。在这里,您正在尝试访问网络,您需要使用 运行 命令传递标志 --allow-net

deno run --allow-net server.ts

要使每次都输入多个标志的过程可以创建一个脚本,并且每次都 运行 该脚本。

就像我在项目根级别创建一个文件 run.sh,其中包含 运行 带有 运行 连接服务器所需的所有标志的命令。

内容如果run.sh

deno run --allow-net --allow-write --allow-read --allow-plugin app.ts

然后我 运行 终端中的这个命令到 运行 服务器

sh run.sh