DenoWeb实战

简介: DenoWeb实战

Deno web实战

Deno 是一个用于构建现代服务器端应用的 JavaScript/TypeScript 运行时。它在设计上与 Node.js 有很多相似之处,但也在一些方面进行了改进,如更严格的安全性、内置的 TypeScript 支持以及去掉了 npm,使用 URL 导入模块等。在进行 Deno 的 Web 开发时,我们可以通过 Deno 提供的标准库以及第三方库来构建强大的网络应用。下面是一些 Deno Web 实战的代码例子:
1. 创建简单的 HTTP 服务器
使用 Deno 创建一个简单的 HTTP 服务器:

// 文件名: server.ts
import { serve } from 'https://deno.land/std/http/server.ts';
const server = serve({ port: 8000 });
console.log('Server is running on http://localhost:8000/');
for await (const req of server) {
  req.respond({ body: 'Hello, Deno Web!' });
}



运行服务器:
deno run --allow-net server.ts

此例中,我们使用 serve 函数创建一个简单的 HTTP 服务器,并在收到请求时返回 "Hello, Deno Web!"。
2. 使用 Oak 框架构建 Web 应用
Oak 是一个基于中间件的 Deno Web 框架,下面是一个使用 Oak 构建的简单 Web 应用:

// 文件名: oak_app.ts
import { Application, Router } from 'https://deno.land/x/oak/mod.ts';
const app = new Application();
const router = new Router();
router.get('/', (ctx) => {
  ctx.response.body = 'Hello, Oak!';
});
app.use(router.routes());
app.use(router.allowedMethods());
console.log('Oak app is running on http://localhost:8000/');
await app.listen({ port: 8000 });



运行应用:
deno run --allow-net oak_app.ts

3. 使用 Deno 实现 RESTful API
创建一个简单的 RESTful API,使用 Deno 的标准库处理 HTTP 请求和路由:

// 文件名: restful_api.ts
import { serve } from 'https://deno.land/std/http/server.ts';
const server = serve({ port: 8000 });
console.log('RESTful API is running on http://localhost:8000/');
for await (const req of server) {
  if (req.method === 'GET' && req.url === '/api/users') {
    const users = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];
    req.respond({ body: JSON.stringify(users) });
  } else {
    req.respond({ body: 'Not Found', status: 404 });
  }
}



运行 API 服务器:
deno run --allow-net restful_api.ts

4. 使用 Deno Deploy 部署静态网页
利用 Deno Deploy,可以轻松地将静态网页部署到全球 CDN。首先,创建一个简单的 HTML 文件 index.html:

<!-- 文件名: index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Deno Deploy Example</title>
</head>
<body>
  <h1>Hello, Deno Deploy!</h1>
</body>
</html>


然后,使用 Deno Deploy 部署:
deno deploy --allow-net --unstable --config=deno.json https://deno.land/x/deploy/deployctl.ts

 这将返回一个部署的 URL,访问该 URL 即可查看部署的静态网页。
这些例子展示了如何在 Deno 中进行 Web 开发,从创建简单的 HTTP 服务器到使用框架构建应用,再到实现 RESTful API 和部署静态网页。这些都是 Deno 在 Web 开发中的实际应用场景。

相关文章
|
8月前
|
数据管理 关系型数据库 数据库
web2py,一个好用的开源Web应用框架!
web2py,一个好用的开源Web应用框架!
166 1
|
8月前
|
数据采集 Python
Python实现简单的Web
Python实现简单的Web
63 0
|
8月前
|
存储 缓存 JavaScript
《Webpack5 核心原理与应用实践》学习笔记-> webpack的loader开发技巧
《Webpack5 核心原理与应用实践》学习笔记-> webpack的loader开发技巧
94 1
|
缓存 资源调度 前端开发
Webpack 2 入门教程
Webpack 2 入门教程
47 0
|
XML 安全 Java
WEB-INF简介
TomCat 服务器下的WEB-INF文件夹是一个非常安全的文件,在页面中不能直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
195 0
|
缓存 监控 JavaScript
手把手带你入门 Webpack4 下
手把手带你入门 Webpack4 下
140 0
|
缓存 前端开发 JavaScript
手把手带你入门 Webpack4 上
手把手带你入门 Webpack4 上
131 0
|
前端开发 JavaScript
2022 年最流行的 Webpack 插件,你用上了吗
2022 年最流行的 Webpack 插件,你用上了吗
261 0
|
存储 NoSQL 前端开发
Day 15:Meteor —— 从零开始创建一个 Web 应用
到目前为止我们讨论了Bower、AngularJS、GruntJS和PhoneGap等JavaScript技术。今天是“30天学习30种新技术”挑战的第15天,我决定重返JavaScript,学习Meteor框架。虽然Meteor的文档相当好,但是它缺少为初学者准备的教程。我觉得教程的学习效果更好,因为教程可以帮助你快速上手一种技术。本文将介绍如何利用 Meteor 框架构建一个epoll应用。
430 0
Day 15:Meteor —— 从零开始创建一个 Web 应用