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