Deno run - 未捕获的权限被拒绝:对"0.0.0.0:8000"的网络访问,使用 --allow-read 标志再次运行



当我尝试运行我的第一个 deno 程序时收到错误消息

deno run server.ts

错误:未捕获的权限被拒绝:对"0.0.0.0:8000"的网络访问,使用 --allow-read 标志再次运行

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

如果您正在访问网络,则需要在运行服务器时传递--allow-net标志,并且如果您的应用程序中存在用于读取和发送文件的函数,则需要传递--allow-read--allow-write标志。

所以

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

然后我运行相同的命令,并添加"--allow-read"标志,如下所示

deno run --allow-read flag server.ts 

错误消失了。 因为我正在读取一个文件,因为 deno 在单独的沙箱中运行,所以默认情况下它无法访问文件系统。 我们需要同意/提供在运行脚本时通过安全标志读取文件的访问权限。

此外,所有安全标志都应紧随其后编写,如下所示的格式

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

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

deno run --allow-net server.ts 

deno run --allow-read server.ts

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

Deno 是默认安全的运行时。这意味着需要显式提供权限才能运行特权操作。在这里,您尝试访问网络,您需要使用run命令传递标志--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

相关内容

  • 没有找到相关文章