Maison  >  Article  >  interface Web  >  Créez facilement un serveur nodejs (4) : Routage

Créez facilement un serveur nodejs (4) : Routage

PHPz
PHPzoriginal
2016-05-16 16:25:511251parcourir

Le serveur doit effectuer différentes opérations en fonction de différentes URL ou requêtes. Nous pouvons implémenter cette étape via le routage.

Dans la première étape, nous devons analyser le chemin de l'URL de la requête et nous introduisons le module url.

Ajoutons un peu de logique à la fonction onRequest() pour connaître le chemin de l'URL demandé par le navigateur :

var http = require("http");
var url = require("url");
function start() {
 function onRequest(request, response) {
  var pathname = url.parse(request.url).pathname;
  console.log("Request for " + pathname + " received.");
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
 }
 http.createServer(onRequest).listen(8888);
 console.log("Server has started.");
}
exports.start = start;好了,pathname就是请求的路径,我们可以用它来区别不同请求了,这样一来我们就可以对来自/start和/upload的请求使用不同的代码来处理。

Écrivons ensuite la route et créons un routeur appelé fichier js. , le code est le suivant :

function route(pathname) {
 console.log("About to route a request for " + pathname);
}
exports.route = route;

Ce code ne fait rien Intégrons d'abord le routage et le serveur.

Nous étendons ensuite la fonction start() du serveur, exécutons la fonction de routage dans start() et lui transmettons le chemin d'accès en tant que paramètre.

var http = require("http");
var url = require("url");
function start(route) {
 function onRequest(request, response) {
  var pathname = url.parse(request.url).pathname;
  console.log("Request for " + pathname + " received.");
  route(pathname);
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
 }
 http.createServer(onRequest).listen(8888);
 console.log("Server has started.");
}
exports.start = start;

En même temps, nous étendrons index.js en conséquence afin que la fonction de routage puisse être injectée dans le serveur :

var server = require("./server");
var router = require("./router");
server.start(router.route);

Exécutez index.js et accédez à n'importe quel chemin , tel que /upload, vous trouverez la sortie de la console, À propos d'acheminer une requête pour /upload.

Cela signifie que notre serveur HTTP et notre module de routage de requêtes peuvent déjà communiquer entre eux.

Ce qui précède représente l'intégralité du contenu de ce chapitre. Pour plus de didacticiels connexes, veuillez visiter le Tutoriel vidéo Node.js !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn