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

青冥有曉月

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章