golang 爱好者鼓励人们使用go .通常会说docker 、k8s都是go开发的,你有什么理由不用。rust在这方面有什么好吹的吗?我试着去搜索,发现了deno。

deno 是Node之父Ryan Dahl 继 Node 之后的又一大作。名字起的有趣,deno看名字就是去颠复node的。它提供一个js/ts的运行时。这意味着,我们不需要再依赖Node.js就能运行js/ts脚本语言。想起那巨胖的node_modules 文件夹。我就想绕着它。还有python 经常要同时装2.7 和3.X的版本。也不是我喜欢的语言。

如果有一天deno能取代它们,成为新一代脚本语言的王者,我将乐见其成。必竞javascript是地球上最火的语言,拥有海量的生态资源。

希望Rust能为js世界提供安全性和速度优势。现在deno还是个demo, 是个玩具。但这不影响,我们使用它,来调试和学习typescript .

deno的安装很蛋疼,应该是中国网络的事,各种方式都是慢,安装中途就挂了。

cargo install deno

brew install deno

curl -fsSL https://deno.land/x/install/install.sh | sh

这三种安装方式,都没有成功,我用macos.

错误提示:

curl: (56) LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 5

好象和LibreSSL 这个库有关,有空我查一下。

解决办法:

curl -fsSL https://x.deno.js.cn/install.sh | sh

这办法适合国内用户,简直秒装成功。最后别忘了在$HOME/.bash_profile 里面加入:

export DENO_INSTALL="/Users/mac/.deno"

export PATH="$DENO_INSTALL/bin:$PATH"

然后 source $HOME/.bash_profile 一下,让配置起作用。最后验证:

deno --versiondeno 1.0.3

v8 8.4.300

typescript 3.9.2

现在尝试写一段typescript代码,然后让deno运行它。

import { serve } from "https://deno.land/std@v0.50.0/http/server.ts";

const s = serve({ port: 8000 });

console.log("http://localhost:8000/");

const getNowDate = (time: any) => {

const date = new Date(time);

let month: string | number = date.getMonth() + 1;

let strDate: string | number = date.getDate();

if (month <= 9) {

month = "0" + month;

}

if (strDate <= 9) {

strDate = "0" + strDate;

}

return date.getFullYear() + "-" + month + "-" + strDate + " "

+ date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();

}

let text = "";

for await (const req of s) {

const now = getNowDate(new Date().getTime()); // 当前时间 text += now + " - Hello World \n";

req.respond({ body: text });

}

命名为8080.ts 随便放在哪儿,然后运行:

deno run --allow-net ./8080.tsCompile file:///Users/mac/deno/8080.ts

http://localhost:8000/

在浏览器中打开localhost:8000,就看到显示结果,类似:2020-06-02 16:51:19 - Hello World

2020-06-02 16:51:22 - Hello World

2020-06-02 16:51:24 - Hello World

看到一个deno的教程:

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐