当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

worktop

Cloudflare Workers 的下一代 Web 框架
授权协议 MIT
开发语言 JavaScript TypeScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 耿永寿
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

worktop 是面向 Cloudflare Workers 的下一代 Web 框架。

特性:

  • 轻量级
  • 一流的 TypeScript 支持
  • 自定义中间件支持
  • 用于点菜功能的组织良好的子模块*
  • 包括支持模式定义的路由器
  • 熟悉的请求-响应处理程序 API
  • 支持async/await处理程序
  • 完全 treeshakable
import { Router } from 'worktop';
import * as Cache from 'worktop/cache';
import { uid as toUID } from 'worktop/utils';
import { read, write } from 'worktop/kv';
import type { KV } from 'worktop/kv';

declare var DATA: KV.Namespace;

interface Message {
  id: string;
  text: string;
  // ...
}

// Initialize
const API = new Router();


API.add('GET', '/messages/:id', async (req, res) => {
  // Pre-parsed `req.params` object
  const key = `messages::${req.params.id}`;

  // Assumes JSON (can override)
  const message = await read<Message>(DATA, key);

  // Alter response headers directly
  res.setHeader('Cache-Control', 'public, max-age=60');

  // Smart `res.send()` helper
  // ~> automatically stringifies JSON objects
  // ~> auto-sets `Content-Type` & `Content-Length` headers
  res.send(200, message);
});


API.add('POST', '/messages', async (req, res) => {
  try {
    // Smart `req.body` helper
    // ~> parses JSON header as JSON
    // ~> parses form-like header as FormData, ...etc
    var input = await req.body<Message>();
  } catch (err) {
    return res.send(400, 'Error parsing request body');
  }

  if (!input || !input.text.trim()) {
    return res.send(422, { text: 'required' });
  }

  const value: Message = {
    id: toUID(16),
    text: input.text.trim(),
    // ...
  };

  // Assumes JSON (can override)
  const key = `messages::${value.id}`;
  const success = await write<Message>(DATA, key, value);
  //    ^ boolean

  // Alias for `event.waitUntil`
  // ~> queues background task (does NOT delay response)
  req.extend(
    fetch('https://.../logs', {
      method: 'POST',
      headers: { 'content-type': 'application/json '},
      body: JSON.stringify({ success, value })
    })
  );

  if (success) res.send(201, value);
  else res.send(500, 'Error creating record');
});


API.add('GET', '/alive', (req, res) => {
  res.end('OK'); // Node.js-like `res.end`
});


// Attach "fetch" event handler
// ~> use `Cache` for request-matching, when permitted
// ~> store Response in `Cache`, when permitted
Cache.listen(API.run);
  • Granite worktops could be ideally suited for your kitchen and bathroom requirements. To help you decide we have prepared some guidelines. Granite has a polished surface which will retain its polish an

 相关资料
  • 先讲 Node.js 基础,然后 Koa 框架(从Koa-generator开始),理解一些基础概念,调试,测试等,然后讲解 http 相关知识,比如 get、post、上传如何实现,如果使用form实现, ajax 实现,如何 koa 实现,如果使用 cli curl 命令测试,如何使用 chrome 的 postman 插件测试,如果使用 supertest 来测试 api。

  • Koa是什么? Koa是Node.js下一代web框架 官方介绍 Expressive HTTP middleware for node.js to make web applications and APIs more enjoyable to write. Koa's middleware stack flows in a stack-like manner, allowing you to

  • 本章重点介绍Web框架及其部署。 PyCharm具有部署代码和文件的简单功能。 要使用PyCharm部署代码,我们需要添加一个带有菜单选项Settings -》 Build, Execution-》 Deployment的Web服务器。 现在,包括部署项目所需的各种配置的所有设置。 在Mappings选项卡中,用户可以指定本地代码的位置以及远程复制到何处。 可以使用Tools -》 Deploym

  • tornado.web — RequestHandler and Application classes Thread-safety notes Request handlers Entry points Input Output Cookies Other Application configuration Decorators Everything else tornado.template

  • 前面十二章介绍了如何通过Go来开发Web应用,介绍了很多基础知识、开发工具和开发技巧,那么我们这一章通过这些知识来实现一个简易的Web框架。通过Go语言来实现一个完整的框架设计,这框架中主要内容有第一小节介绍的Web框架的结构规划,例如采用MVC模式来进行开发,程序的执行流程设计等内容;第二小节介绍框架的第一个功能:路由,如何让访问的URL映射到相应的处理逻辑;第三小节介绍处理逻辑,如何设计一个公

  • 本章重点介绍Web框架及其部署。 PyCharm具有部署代码和文件的简单功能。 要使用PyCharm部署代码,我们需要添加一个带有菜单选项:Settings -> Build, Execution -> Deployment 来部署Web服务器。 现在,包含部署项目所需的各种配置的所有设置。 在Mappings 选项卡中,用户可以指定本地代码的位置以及它应该远程复制到的位置。 代码可以使用工具菜单

  • 问题内容: 我将部署我的node.js应用程序。 我可以仅使用node.js来启动自己的Web应用程序。 但是我的父亲告诉我,最好在apache或nginx下提供该Web应用程序。 任何人都有这样的经验,为什么我们需要apache,因为我只能在node.js + express上启动我的Web应用程序? 我想了解更多有关部署方面的知识。谢谢你的帮助。 套件 问题答案: 在未开发的应用程序中,将Ap

  • 22. Web MVC框架