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 开发中的实际应用场景。

相关文章
|
21天前
|
人工智能 安全 API
开源 Agent 框架 DeepSeek Harness 实操:四种部署方案、WebUI 启动配置、插件管理与故障排查指南
DeepSeek Harness是一套轻量化、插件化的开源AI Agent执行底座,依托“大模型+执行框架”的架构,让模型拥有调用本地资源、分步执行复杂任务的能力。整个部署流程分为环境准备、安装DSH、配置模型接口、安装插件、启动WebUI、任务调试、进程守护七大环节,提供npx快速体验、npm全局安装、源码编译、Python SDK四种部署模式,满足新手快速体验和开发者二次开发两类需求。
610 1
|
5月前
|
人工智能 弹性计算 API
阿里云最新优惠券参考:AI加速季权益礼包、百炼优惠券、迁云补贴与学生优惠券领取与使用规则介绍
2026年阿里云推出多元化优惠券体系,覆盖学生、个人、企业及AI用户四大群体。个人与企业可领取AI加速季权益礼包(个人360元、企业1728元),覆盖百余款云产品,6月内一次性领用。AI大模型用户享百炼"先用后返"券,最高返200元。学生经认证可领300元无门槛年券,适用于ECS、OSS等主流产品。企业迁云最高可获5亿算力补贴,需提供非阿里云消费凭证申请。各券均有明确使用范围与有效期,建议用户按身份精准领取、合理规划使用,最大化降低上云与AI应用成本。
|
2月前
|
人工智能 定位技术 API
66 个 AI 术语背不住,先记住这张地图
刚接触 AI 时,最劝退人的往往不是工具难用,而是名词太多。 LLM、Token、Context、RAG、Agent、MCP、Skill、API、CLI 混在一段话里,看上去像每个词都必须先学会,才能开始使用。 其实没必要按字母表背诵。把高频术语放回一条真实工作链路里,它们会自然分成几个位置。 第一
66 个 AI 术语背不住,先记住这张地图
|
2月前
|
数据采集 存储 JSON
猫眼商品(票务 / 影片)数据获取完整方案
猫眼平台严禁爬虫抓取,官方无免费商用API。合规途径为对接猫眼商务或选用合规第三方封装接口。可获取影片、影院、排期、票价等数据,但逆向接口风险高、维护难。须严守使用边界:仅限内部分析,禁售数据、禁刷库存、限频访问。
306 1
|
7月前
|
关系型数据库 MySQL Java
【赵渝强老师】MySQL数据库的分库与分表
Mycat是一款开源分布式数据库中间件,支持MySQL等主流数据库,提供分库分表、读写分离、逻辑库/表抽象等功能。本文详解其核心概念(如分片表、ER表、全局序列号)、安装部署(JDK配置、服务启停)及实战配置(schema.xml/rule.xml),并演示基于三节点MySQL的分片数据路由与查询。
439 31
|
7月前
|
存储 数据采集 人工智能
2026年企业级BI系统建设方案:从数据孤岛到湖仓一体
在数字化转型深水区,数据孤岛严重制约价值释放。2026年企业级BI建设聚焦“湖仓一体”:以统一数据底座、全链路治理、AI原生分析为核心,打通系统壁垒、统一口径标准、激活全域数据,构建高可靠、全员可用的智能决策中枢。(239字)
|
消息中间件 缓存 NoSQL
订单实时状态查询接口技术实现
本文介绍如何用Python和Flask构建高效订单实时查询接口,涵盖RESTful设计、Redis缓存、数据库优化与Kafka消息队列,实现毫秒级响应、高并发支持,提升电商系统用户体验。
|
10月前
|
数据采集 人工智能 监控
什么是数据治理?从理念到实践的系统解析
在数字化时代,数据治理已成为企业释放数据价值、保障合规与安全的核心战略。本文深入解析数据治理的体系化内涵,涵盖组织、制度、流程与技术四大维度,并聚焦瓴羊Dataphin平台,展现其以“规、建、管、用”一体化打造企业级数据治理闭环的实践路径,助力企业实现数据资产化、服务化与智能化转型。
|
人工智能 缓存 安全
大模型无缝切换,QwQ-32B和DeepSeek-R1 全都要
通义千问最新推出的QwQ-32B推理模型,拥有320亿参数,性能媲美DeepSeek-R1(6710亿参数)。QwQ-32B支持在小型移动设备上本地运行,并可将企业大模型API调用成本降低90%以上。本文介绍了如何通过Higress AI网关实现DeepSeek-R1与QwQ-32B之间的无缝切换,涵盖环境准备、模型接入配置及客户端调用示例等内容。此外,还详细探讨了Higress AI网关的多模型服务、消费者鉴权、模型自动切换等高级功能,帮助企业解决TPS与成本平衡、内容安全合规等问题,提升大模型应用的稳定性和效率。
2386 136
大模型无缝切换,QwQ-32B和DeepSeek-R1 全都要