Deno run is not working properly also drun

断了今生、忘了曾经 提交于 2020-06-16 19:14:08

问题


After created an index.ts and wrote a simple code for listening to port 3000 and printing hello world on the body, I'm also not able to run or get the output from deno's drun module.

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()


回答1:


Development Environment:- Windows 10

The problem seems to be the address 0.0.0.0 is specific to mac only.Windows Doesn't use 0.0.0.0 address.

After going to localhost:3000 / 127.0.0.1:3000. I was able to get the output.I think maybe Windows redirects the 0.0.0.0 to localhost. Anyway it solved my problem!




回答2:


I am on windows. I faced with the same problem. Then,

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

I created the app in typescript giving parameter hostname like above. And run deno like this:

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

it worked.




回答3:


Run your server with the following command:

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

In any case most Deno tools for watching changes are still bugged, I recommend to use nodemon, with --exec flag

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

For convenience you can use nodemon.json with the following content:

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

And now just use: nodemon server.ts




回答4:


It seems that you have an error in your code snippet, with the last

  return ctx.req.body;
});

If you fix that and use the last deno (v1.0.1) and drun(v1.1.0) versions it should works with the following command: drun --entryPoint=index.ts --runtimeOptions=--allow-net



来源:https://stackoverflow.com/questions/61952518/deno-run-is-not-working-properly-also-drun

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!