零、前言

Deno 是一个 JavaScript/TypeScript 运行时,具有安全的默认值和良好的开发体验。

Deno Web Development介绍 Deno 的原语,它的原则,以及开发人员如何使用它们来构建真实的应用。 这本书分为三个主要部分:介绍 Deno、从头构建 API 以及测试和部署 Deno 应用。 在本书的最后,读者将会习惯使用 Deno 来创建、维护和部署安全可靠的 web 应用。

这本书是给谁的

这本书的目标读者是所有级别的开发人员,他们希望在一个安全、简单和现代的运行时中利用他们的 JavaScript 和 TypeScript 技能,将其用于 web 开发。

这本书的内容

第一章什么是 Deno? ,给出了关于 Node.js 的历史背景和导致 Deno 创建的动机,展示了运行时架构和前提。

第二章工具链,介绍了安装 Deno,并探索了运行时二进制文件中包含的工具。

第 3 章The Runtime and Standard Library介绍了如何使用 Deno 的 Runtime 和标准库函数编写简单的脚本和应用。

第 4 章Building a Web Application介绍了如何使用标准库 HTTP 模块建立 Web 应用的基础。

第 5 章Adding Users and migration to Oak,覆盖了使用 Oak,一个流行的 HTTP 库,来构建一个 REST API,并添加持久性和用户到应用。

第 6 章Adding Authentication and Connecting to the Database,着眼于增加对认证和认证端点的支持,并连接到 MongoDB 数据库。

第 7 章HTTPS, extraction Configuration, and Deno in the Browser,着眼于启用 HTTP,处理基于文件和环境的配置,以及浏览器中的 Deno 代码。

第 8 章Testing - Unit and Integration,涵盖了前面章节所写模块的单元和集成测试的编写和运行。

第 9 章部署 Deno 应用

第十章What's Next? ,概述了我们在书中所学到的东西,Deno 的路线图,解释了如何发布一个模块到 Deno 的官方注册,并通过 Deno 的未来和社区与您交谈。

为了充分利用这本书

本书中的所有代码示例都是在 macOS 上使用 Deno 1.7.5 进行测试的,但它们应该可以在 Deno 的未来版本中使用。 在这本书中还使用了一些第三方软件包。 使用它们的示例也应该适用于该软件的新版本。

这本书将为所有使用的软件提供安装说明。

这本书的代码是使用 VS code(https://code.visualstudio.com/)为使用官方的 Deno 扩展的最佳体验编写的。 这不是必需的,本书可以使用任何编码编辑器来阅读。

如果您正在使用本书的数字版本,我们建议您自己输入代码或通过 GitHub 存储库访问代码(链接在下一节可用)。 这样做将帮助您避免与复制和粘贴代码相关的任何潜在错误。

你应该能熟练使用 JavaScript,并具备 TypeScript 的基本知识。 Node.js 知识不是必需的,但可能很有用。

下载示例代码文件

你可以从你的账户www.packt.com下载这本书的示例代码文件。 如果您在其他地方购买了这本书,您可以访问www.packtpub.com/support并注册,直接通过电子邮件将文件发送给您。

您可以按照以下步骤下载代码文件:

  1. 登录或注册:www.packt.com
  2. 选择Support选项卡。
  3. 点击代码下载
  4. 搜索框中输入图书名称,并按照屏幕上的说明操作。

文件下载后,请确保使用最新版本的:

  • 解压缩的软件/ 7 - zip 窗口
  • Zipeg / iZip UnRarX Mac
  • 7 - zip / PeaZip Linux

本书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Deno-Web-Development。 如果有对代码的更新,它将在现有的 GitHub 存储库中更新。

我们也有来自丰富的图书和视频目录的其他代码包,可在https://github.com/PacktPublishing/。 检查出来!

使用的约定

本书中有许多文本约定。

Code in text:文本码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 url、用户输入、Twitter 句柄。 例如:“将oak-middleware-jwt添加到deps.ts文件并导出jwtMiddleware函数。”

代码块的设置如下:

const apiRouter = new Router({ prefix: "/api" })
apiRouter.use(async (_, next) => {
  console.log("Request was made to API Router");
  await next();
}))

app.use(apiRouter.routes());
app.use(apiRouter.allowedMethods());

当我们希望您注意代码块的特定部分时,相关的行或项以粗体显示:

const app = new Application();
app.use(async (ctx, next) => {
 const start = Date.now();
 await next();
 const ms = Date.now() - start;
 ctx.response.headers.set("X-Response-Time", `${ms}ms`);
});

app.use(apiRouter.routes());
app.use(apiRouter.allowedMethods());

命令行输入或输出如下所示:

$ deno --version 
deno 1.7.5 (release, x86_64-apple-darwin) 
v8 9.0.123 
typescript 4.1.4

加粗:表示新术语、重要单词或屏幕上看到的单词。 例如,菜单或对话框中的单词会像这样出现在文本中。 这里有一个例子:“如果你使用了 MongoDB,你可以在 Atlas 界面上看到你的用户创建,通过进入Collections菜单。”

小贴士或重要笔记

出现这样的。

联系

我们欢迎读者的反馈。

:如果你对这本书的任何方面有疑问,在你的信息的主题中提到书名,并给我们发邮件customercare@packtpub.com

勘误表:虽然我们已经采取了每一个小心,以确保我们的内容的准确性,错误确实发生了。 如果您在本书中发现了错误,请向我们报告,我们将不胜感激。 请访问www.packtpub.com/support/errata,选择您的书,点击勘误表提交表格链接,并输入详细信息。

:如果您在互联网上发现任何形式的我们的作品的非法拷贝,如果您能提供我们的地址或网站名称,我们将不胜感激。 请通过copyright@packt.com联系我们,并提供材料链接。

:如果你有兴趣成为一名作家,如果你对某一话题有专长,或者你有兴趣写一本书,请访问authors.packtpub.com

评论

请留下评论。 一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢? 潜在的读者可以看到并使用您的公正的意见来做出购买决定,我们在 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们的书的反馈。 谢谢你!

如需了解更多信息,请访问packt.com