Deno 起步

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

代码解释:

  1. 取得了第一个命令行参数,存储到变量 url
  2. 向指定的地址发出请求,等待响应,然后存储到变量 res
  3. 把响应体解析为一个 ArrayBuffer,等待接收完毕,将其转换为 Uint8Array,最后存储到变量 body
  4. 我们把 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

(0)
上一篇 2021年8月9日
下一篇 2021年8月9日

相关推荐

发表回复

登录后才能评论