1

在创建了一个 index.ts 并编写了一个简单的代码来监听端口 3000 并在 body 上打印 hello world 之后,我也无法运行或获取 deno 的 drun 模块的输出

import { Application, Router } from "https://deno.land/x/denotrain@v0.5.0/mod.ts";

const app = new Application();

const router = new Router();

// Middleware 
app.use((ctx) => {

  ctx.cookies["user.session"] = "qwertz";
  ctx.cookies["a"] = "123";
  ctx.cookies["b"] = "456";
  delete ctx.cookies["user.session"];
  return;
});

router.get("/", (ctx) => {

  return new Promise((resolve) => resolve("This is the admin interface!")); 
});
router.get("/edit", async (ctx) => {
  return "This is an edit mode!"; 
});

app.get("/", (ctx) => {

  return {"hello": "world"};
});

app.use("/admin", router);

app.get("/:id", (ctx) => {
  // Use url parameters
  return "Hello World with ID: " + ctx.req.params.id
});

  return ctx.req.body;
});

await app.run()

在此处输入图像描述

4

4 回答 4

1

开发环境:- Windows 10

问题似乎是地址0.0.0.0仅特定于mac。Windows不使用0.0.0.0地址。

转到localhost:3000 / 127.0.0.1:3000之后。我能够得到输出。我想也许 Windows 将0.0.0.0重定向到 localhost。无论如何它解决了我的问题!

于 2020-05-22T11:21:27.113 回答
1

我在窗户上。我遇到了同样的问题。然后,

const app = new Application({hostname:"127.0.0.1"});

我在打字稿中创建了应用程序,给出了上面的参数主机名。像这样运行 deno:

deno run --allow-net=127.0.0.1 index.ts

有效。

于 2020-05-26T16:34:26.307 回答
0

使用以下命令运行您的服务器:

drun watch --entryPoint=./server.ts --runtimeOptions=--allow-net

无论如何,大多数用于监视更改的 Deno 工具仍然存在错误,我建议使用nodemon, 和--exec标志

nodemon --exec deno run --allow-net server.ts

为方便起见,您可以使用nodemon.json以下内容:

{
  "execMap": {
    "js": "deno run --allow-net",
    "ts": "deno run --allow-net"
  },
  "ext": "js,json,ts"
}

现在只需使用: nodemon server.ts

于 2020-05-22T10:06:10.737 回答
0

您的代码片段中似乎有错误,最后一个

  return ctx.req.body;
});

如果你修复它并使用最后一个 deno (v1.0.1) 和 drun(v1.1.0) 版本,它应该可以使用以下命令: drun --entryPoint=index.ts --runtimeOptions=--allow-net

于 2020-05-22T11:10:14.880 回答