我在导入https://deno.land/x/oak/mod.ts时总会出现错误,求救


上图是个非常简单的demo,
当我用了梯子时,运行命令:deno run --allow-all server.ts
结果报错:
error: error sending request for url (https://deno.land/x/oak/context.ts): error trying to connect: invalid dnsname
Imported from “https://deno.land/x/oak/mod.ts:11

当我不用梯子时:
error: error sending request for url ((https)://raw.githubusercontent.com/pillarjs/path-to-regexp/v6.1.0/src/index.ts): error trying to connect: dns error: 请求的名称有效,但是找不到请求的类型的数据。 (os error 11004)

而且当我访问deno官网时:

Failed to get directory listing

Got an error (403) while querying the GitHub API: {“message”:“API rate limit exceeded for 162.245.239.68. (But here’s the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)”,“documentation_url”:"(这里假装是https)://developer.github.com/v3/#rate-limiting"}

(。。。新用户只能上传一张图片)

我已经被这个问题困扰好久了,有人遇到吗,求救

其实,你完全可以字节贴代码,这样还能方便别人调试。

这个是网络问题,是在大陆访问 github 网站的问题,不是 Deno 自身的问题。

可以在 hosts 文件里面添加如下代码:

199.232.68.133 raw.githubusercontent.com

如果你是 windows 系统,这个文件位置在 C:\Windows\System32\drivers\etc 目录。

macOS 系统在 /etc/hosts

你检查一下你的梯子吧

按照这个方法,虽然https://deno.land/x/oak 可以访问了,但是启动程序还是报同样的错误

PS D:\Work\work-study\html-demo\denoTwo> deno run --allow-all server.ts
Download https://deno.land/x/oak/context.ts
Download https://deno.land/x/oak/cookies.ts
Download https://deno.land/x/oak/httpError.ts
Download https://deno.land/x/oak/multipart.ts
Download https://deno.land/x/oak/request.ts
Download https://deno.land/x/oak/response.ts
Download https://deno.land/x/oak/router.ts
Download https://deno.land/x/oak/send.ts
Download https://deno.land/x/oak/server_sent_event.ts
Download https://deno.land/x/oak/keyStack.ts
Download https://deno.land/std@0.59.0/bytes/mod.ts
Download https://deno.land/std@0.59.0/hash/sha1.ts
Download https://deno.land/std@0.59.0/hash/sha256.ts
Download https://deno.land/std@0.59.0/http/server.ts
Download https://deno.land/std@0.59.0/http/http_status.ts
Download https://deno.land/std@0.59.0/io/bufio.ts
Download https://deno.land/std@0.59.0/path/mod.ts
Download https://deno.land/std@0.59.0/testing/asserts.ts
Download https://deno.land/std@0.59.0/ws/mod.ts
Download https://deno.land/x/media_types@v2.3.8/mod.ts
Download https://raw.githubusercontent.com/pillarjs/path-to-regexp/v6.1.0/src/index.ts
error: error sending request for url (https://raw.githubusercontent.com/pillarjs/path-to- 
regexp/v6.1.0/src/index.ts): error trying to connect: dns error: 请求的名称有效,但是找不到请求的类 
型的数据。 (os error 11004)
Imported from "https://deno.land/x/oak/deps.ts:43"

我用的梯子是免费的。。。

而且奇怪的是,导入其他库,是没问题的,只有导入oak才会出现这个问题
import { Application } from “https://deno.land/x/oak/mod.ts”;

把梯子关了,直接改 hosts 就可以访问 githubusercontent 了

关了梯子,也是报错,就是上面的中文报错提示, (开了梯子是英文展示报错,不开梯子是中文报错,都试了)

ping 一下 raw.githubusercontent.com


可以啊

这是不可以

“找不到主机” 说明是 dns 有问题。

现在可以了,就是按照你说的方法,hosts加:

199.232.68.133 raw.githubusercontent.com

现在可以下载成功,官网也能访问了,也不需要梯子了,
感谢耐心指点 :smile:

1赞

请问一下,我在hosts 中添加了还是不行,请问有其他的操作吗

现在应该可以了。deno 开发团队重构了 deno.land/x 代码,目前已经不用托管在 github 上了。

1赞

你好,设置完hosts之后,在 ipconfig /flushdns 刷新dns缓存就可以了

现在不用设置 hosts 了