Deno run не работает должным образом также drun

После создания index.ts и написания простого кода для прослушивания порта 3000 и печати hello world на теле я также не могу запускать или получать выходные данные из модуля 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 ответа

Решение

Среда разработки:- 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. В любом случае это решило мою проблему!

Я на окнах. Я столкнулся с той же проблемой. Потом,

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

Я создал приложение в машинописном тексте, указав имя хоста параметра, как указано выше. И запустите программу вот так:

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

это сработало.

Запустите свой сервер с помощью следующей команды:

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

Похоже, у вас есть ошибка в фрагменте кода, последний

  return ctx.req.body;
});

Если вы исправите это и используете последние версии Denon (v1.0.1) и drun(v1.1.0), это должно работать с помощью следующей команды:drun --entryPoint=index.ts --runtimeOptions=--allow-net

Другие вопросы по тегам