1

我正在尝试使用Deno,并且我找到了一个名为Attain的脚本,它看起来与 Express 非常相似。

快递片断:

const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})

app.listen(3000)

获取片段:

import { App, Router } from "https://deno.land/x/attain/mod.ts";
const app = new App();

app.get('/', (req, res) => {
    res.send("Hey there!");
});

app.listen({port: 8080});

开始使用它作为中间件框架看起来很有希望,但我正在寻找经验丰富的意见,关于 Attain 是否包含与 Express 相同的内部功能,以及它们之间是否存在差异?

4

3 回答 3

2

它是概念和中间件,所有的东西都来自 express.js 的概念。但程序有点不同。一方面,Attain 没有 next() 方法,因为它是一个基于异步的逐步过程。它不会停止,直到它面对 send() 或 end() 方法。

:GET方法/

import { App, Router } from "https://deno.land/x/attain/mod.ts";
const app = new App();

app.use((req, res) => {
  console.log("First step");
  
  res.whenReady(() => {
    console.log("Fourth step");
  });
});

app.get("/hello", (req, res) => {
  console.log("Second step but will skip it because of url unmatched.");
});

app.get('/', (req, res) => {
  console.log("Third step");
  res.status(200).send("The fifth step has responded.");
});

app.use((req, res) => {
  console.log("It does not reach here.");
});

app.listen({port: 8080});

我可以说橡木已经被大量使用并且可以使用,因为它已经开发了很长时间。但是 Attain 库已经在几天前发布了。

于 2020-05-16T23:24:15.637 回答
1

目前最接近 Express with Deno 的 Web 框架是 Oak

https://github.com/oakserver/oak

如果你熟悉 Express 和 Koa 等 JavaScript 中间件框架,它会很容易理解和使用

于 2020-05-16T06:27:59.643 回答
0

在为 Deno 找到 Web 框架时,我得到的结论是OAK,它是目前最流行的可用框架,其他abcpogo,但到目前为止,OAK 是最好的,并且可以与路由器和中间件一起使用。您可以在 medium 上找到有关使用 Deno 和 OAK 构建简单 REST API的详细文章,以便更好地理解。

于 2020-05-17T08:36:02.640 回答