1
votes

Deno run ne fonctionne pas correctement aussi ivre

Après avoir créé un index.ts et écrit un code simple pour écouter le port 3000 et imprimer hello world sur le corps, je ne suis pas non plus en mesure d'exécuter ou d'obtenir la sortie du module drun de deno .

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

 entrez la description de l'image ici


4 commentaires

quelle sortie obtenez-vous lorsque vous l'exécutez? Quelle commande utilisez-vous pour exécuter le srever?


Et btw le code que vous avez posté a une erreur de syntaxe.


deno run --allow-net index.ts est la commande que j'ai écrite pour exécuter l'application


j'ai utilisé drun pour exécuter l'application mais cela ne sert à rien


4 Réponses :


0
votes

Exécutez votre serveur avec la commande suivante:

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

Dans tous les cas, la plupart des outils Deno pour observer les changements sont toujours buggés, je recommande d'utiliser nodemon , avec l'indicateur --exec

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

Pour plus de commodité, vous pouvez utiliser nodemon.json avec le contenu suivant: p>

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

Et maintenant, utilisez simplement: nodemon server.ts


7 commentaires

J'ai essayé la commande drun que vous avez postée plus tôt toujours pas de résultat.Mais montrant le service sur le 0.0.0.0:8000


L'application par défaut utilise 3000 pour indiquer où vous définissez le port: 8000


Si vous l'exécutez sans drun ou nodemon est-ce que cela fonctionne, juste deno run -A server.ts ?


Désolé j'ai utilisé 3000, je passe à 8000 si c'est le problème du port mais pas.


Après avoir exécuté la commande deno run, il affiche toujours la même erreur que j'ai montrée ci-dessus. Rien ne s'affiche.


Vous voyez donc: Affichage du service sur le 0.0.0.0:8000 et rien d'autre? Aucune erreur sur le terminal?.


continuons cette discussion dans le chat .



0
votes

Il semble que vous ayez une erreur dans votre extrait de code, avec le dernier

  return ctx.req.body;
});

Si vous corrigez cela et utilisez le dernier deno (v1.0.1) et drun (v1.1.0) versions, il devrait fonctionner avec la commande suivante: drun --entryPoint = index.ts --runtimeOptions = - allow-net


0 commentaires

1
votes

Environnement de développement: - Windows 10

Le problème semble être que l'adresse 0.0.0.0 est spécifique à mac uniquement. Windows n'utilise pas l'adresse 0.0.0.0 .

Après avoir accédé à localhost: 3000 / 127.0.0.1:3000 . J'ai pu obtenir le résultat. Je pense que Windows redirige peut-être le 0.0.0.0 vers localhost. Quoi qu'il en soit, cela a résolu mon problème!


0 commentaires

1
votes

Je suis sous Windows. J'ai fait face au même problème. Ensuite,

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

J'ai créé l'application en tapé manuscrit donnant le paramètre hostname comme ci-dessus. Et lancez deno comme ceci:

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

cela a fonctionné.


0 commentaires