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()
4 Réponses :
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
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 .
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
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!
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é.
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