Deno 起步
入门 Deno 我们先从一些简单的示例开始,你可以从中了解到Deno的一些概念以及使用方法。
在学习本章节之前,需要对JavaScript有些了解,特别是async
/await
概念,便于您更好的学习Deno。
如果您没有学习过JavaScript,你可以先阅读这个JavaScript教程。
Hello World
hello world基本上是每个语言一开始就会用到的一个示例。Deno中也从Hello World开始。
Deno 是一个 JavaScript 和 TypeScript 的运行时,并尝试与浏览器兼容并使用现代的功能 (features)。
由于 Deno 具有浏览器兼容性,所以这里的Hello World
程序与浏览器里展示的没有区别。
console.log("Welcome to Deno !");
你可以在你的环境中尝试一下命令:
deno run https://deno.land/std@0.89.0/examples/welcome.ts
发送 HTTP 请求
使用 Deno 通过 HTTP 请求从服务器获取数据,你可以通过一下的方式实现。这里就像浏览器一样,使用 web 标准的 fetch
API 来发出请求。
const url = Deno.args[0];
const res = await fetch(url);
const body = new Uint8Array(await res.arrayBuffer());
await Deno.stdout.write(body);
代码解释:
- 取得了第一个命令行参数,存储到变量
url
。 - 向指定的地址发出请求,等待响应,然后存储到变量
res
。 - 把响应体解析为一个
ArrayBuffer
,等待接收完毕,将其转换为Uint8Array
,最后存储到变量body
。 - 我们把
body
的内容写入标准输出流stdout
。
你可以通过deno.land直接运行以上代码,也可以将上面代码保存到本地文件通过命令运行,方式如下:
deno run --allow-net=ytso.com https://deno.land/std@0.89.0/examples/curl.ts https://ytso.com
或者
deno run --allow-net=ytso.com ./curl.ts https://ytso.com
命令中的参数--allow-net=ytso.com
用来显示的赋予程序执行的网络权限,如果不加会返回一个网络权限错误。(因为 Deno 默认用安全环境执行代码。)
创建一个HttpServer服务
// 通过URL把远程Deno标准库中的`server.ts` 导入 `serve`。
import { serve } from "https://deno.land/std@v0.89.0/http/server.ts";
for await (const req of serve({ port: 8000 })) {
req.respond({ body: "Hello World/n" });
}
可以将文件保存为server.ts到本地,然后执行如下命令:
deno run --allow-net ./server.ts
执行后,可以通过浏览器访问http://localhost:8000
,浏览器中你会看到如下输出
Hello World
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/59583.html