Deno 运行报错 - Uncaught PermissionDenied: network access

我在尝试Deno 的渐进式 HTTP 服务器 Servest ,在运行示例时遇到错误:

$ deno run Servest.ts                                                                                   
error: Uncaught PermissionDenied: network access to "0.0.0.0:8899", run again with the --allow-net flag
    at unwrapResponse ($deno$/ops/dispatch_json.ts:43:11)
    at Object.sendSync ($deno$/ops/dispatch_json.ts:72:10)
    at Object.listen ($deno$/ops/net.ts:51:10)
    at Object.listen ($deno$/net.ts:152:22)
    at createListener (https://servestjs.org/@v1.1.0/server.ts:124:15)
    at listenAndServe (https://servestjs.org/@v1.1.0/server.ts:142:20)
    at Object.listen (https://servestjs.org/@v1.1.0/app.ts:81:22)
    at file:///Users/hyz/work/vscode_work/deno/Servest.ts:12:5

报错提示提示我应该 使用 --allow-net 再次运行,我尝试执行命令:

$ deno run --allow-net Servest.ts                                                                                                               
I[2020-06-12T02:46:38.136Z] servest:router listening on :8899
I[2020-06-12T02:46:46.998Z] servest:router 200 GET /
I[2020-06-12T02:46:47.279Z] servest:router 404 GET /favicon.ico

成功了。

WHY ???

原来,Deno默认情况下是安全运行的。这意味着你需要明确授予程序执行某些“特权”操作的权限,例如访问网络。
所以你需要通过 --allow-net=<domain> 参数来设置允许访问的网络。如果您不提供网络,它将允许所有,就像我上面执行的操作。

官网说明:

在这里插入图片描述

相关的其他参数还有:

--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

青冥有晓月

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值