【问题标题】:How to solve Deno error: Uncaught PermissionDenied如何解决 Deno 错误:未捕获的 PermissionDenied
【发布时间】:2020-05-20 14:31:42
【问题描述】:

当使用deno run app.ts 命令运行应用程序并给出error: Uncaught PermissionDenied

error: Uncaught PermissionDenied: access to environment variables, run again with the --allow-env flag
    at unwrapResponse ($deno$/ops/dispatch_json.ts:43:11)
    at Object.sendSync ($deno$/ops/dispatch_json.ts:72:10)
    at Object.toObject ($deno$/ops/os.ts:33:12)
    at file:///opt//deno/app.ts:5:22

【问题讨论】:

标签: deno


【解决方案1】:

此类问题我们需要在运行应用程序时设置一个标志

不同种类的权限

--allow-env                    
    Allow environment access

--allow-hrtime                 
    Allow high resolution time measurement

--allow-net=<allow-net>        
    Allow network access

--allow-plugin                 
    Allow loading plugins

--allow-read=<allow-read>      
    Allow file system read access

--allow-run                    
    Allow running subprocesses

--allow-write=<allow-write>    
    Allow file system write access
    deno run -allow-all app.ts

例子

  //Give an environment permission
  deno run --allow-env app.ts

  //Give an all permission 
  deno run -allow-all app.ts 
  OR
  deno run -A app.ts 

参考链接:https://stackoverflow.com/a/61878925/9077019

【讨论】:

    【解决方案2】:

    在您的控制台日志中,尝试访问 environment variables 导致的错误,在 Deno 中您必须提供/授予权限标志才能访问环境变量:

    如果您直接从终端读取环境变量:

    > TEST=123 deno --allow-env app.ts
    

    如果您从 .env 文件中读取环境变量:

    > TEST=123 deno --allow-env --allow-read app.ts
    

    注意:始终优先考虑least privilege principle,不要随意授予应用所有权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2020-03-09
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多