Maison  >  Article  >  interface Web  >  Tutoriel sur la façon de créer un serveur Web simple à l'aide de node.js

Tutoriel sur la façon de créer un serveur Web simple à l'aide de node.js

高洛峰
高洛峰original
2017-02-21 14:39:231546parcourir

Le thème de cet article est d'utiliser node pour construire le serveur Web le plus simple. Plus tard, vous pourrez en apprendre davantage en fonction de vos besoins. Actuellement, il peut être utilisé pour simuler des interactions simples avec le serveur pendant le processus de développement, comme le retour du contrôle des ressources, etc. Les amis qui en ont besoin peuvent s’y référer pour référence. Jetons un coup d’œil ci-dessous.

Avant-propos

Utiliser Nodejs pour créer un serveur Web est un didacticiel d'introduction complet à l'apprentissage de Node.js, car vous devez effectuer un simple serveur Web. Vous devez apprendre plusieurs modules importants dans Nodejs, tels que : le module de protocole http, le système de fichiers, le module d'analyse d'URL, le module d'analyse de chemin et les problèmes de redirection 301. Parlons brièvement de la façon de créer un serveur Web simple.

Si vous souhaitez accéder aux ressources locales côté navigateur sans utiliser de serveur Web, vous pouvez utiliser le navigateur Firefox, qui peut démarrer lui-même un petit serveur Web.
Pour que les personnes qui découvrent Node le comprennent de manière générale, je vais essayer de simplifier autant que possible le code de cet article.

Préparation

Tout d'abord, vous devez installer nodejs. Celui-ci peut être téléchargé depuis le site officiel. Actuellement, j'ai la v0. Version .12 installée localement.

Une fois l'installation terminée, vous pouvez tester si l'installation a réussi via la ligne de commande. Entrez : node -v, et le numéro de version du nœud actuellement installé devrait être affiché.
Les modules utilisés dans cet article sont tous des modules de base de nodejs et n'ont pas besoin d'être téléchargés de l'extérieur. Si nécessaire, vous pouvez utiliser la commande suivante pour les installer : npm install xxx.

Démarrer

Étape suivante, créez un nouveau fichier js, qui peut être nommé server.js. Le code est le suivant :

var http = require('http');
 var url = require('url');
 var path = require('path');
 var fs = require('fs');

 var dir, arg = process.argv[2] || ''; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
 // 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
 // 且你想以debug文件夹启动web服务

 http.createServer(function (req, res) {
 var pathname = __dirname + url.parse(req.url).pathname;
 dir = dir ? dir : pathname; // 记住dir(目录)
 pathname = dir ? pathname.replace(dir, dir + arg + '/') : pathname; // 替换文件静态路径
 if (path.extname(pathname) == "") {
 pathname += "/";
 }
 if (pathname.charAt(pathname.length - 1) == "/") {
 pathname += "index.html"; // 入口文件,此处默认index.html
 }

 fs.exists(pathname, function (exists) {
 if (exists) {
 switch (path.extname(pathname)) {
 case ".html":
 res.writeHead(200, {"Content-Type": "text/html"});
 break;
 case ".js":
 res.writeHead(200, {"Content-Type": "text/javascript"});
 break;
 case ".css":
 res.writeHead(200, {"Content-Type": "text/css"});
 break;
 case ".gif":
 res.writeHead(200, {"Content-Type": "image/gif"});
 break;
 case ".jpg":
 res.writeHead(200, {"Content-Type": "image/jpeg"});
 break;
 case ".png":
 res.writeHead(200, {"Content-Type": "image/png"});
 break;
 default:
 res.writeHead(200, {"Content-Type": "application/octet-stream"});
 }

 // res可以自己添加信息来简单交互 比如可以修改点header信息 或者修改返回的资源数据
 fs.readFile(pathname, function (err, data) {
 res.end(data);
 });
 }
 else {
 res.writeHead(404, {"Content-Type": "text/html"});
 res.end("<h1>404 Not Found</h1>");
 }
 });
 }).listen(8085, "127.0.0.5"); // 服务器端口

 console.log("server running at http://www.php.cn/:8085/");

Démarrer

Une fois l'installation du nœud terminée et le serveur.js ci-dessus le fichier est créé. Assemblez-le avec le dossier auquel vous souhaitez accéder, soit sur le même calque, soit directement en dessous. Par exemple, si vous souhaitez accéder au dossier d:testdebug.


Vous pouvez d'abord placer le fichier actuel dans le même calque ou le télécharger directement, puis saisir la commande suivante pour démarrer le service Web :

  1. Premier ouvrez `cmd` et entrez Le répertoire où se trouve le fichier du serveur, tel que le répertoire `test`

  2. puis entrez : `

    ` (même couche), ou `node server debug` (sous-couche), node server

  3. À ce moment, `

    ` sera demandé, indiquant que le service a été démarré avec succès server running at http://www.php.cn/:8085/

     ;
  4. Enfin, ouvrez le navigateur et saisissez : `127.0.0.5:8085 ` pour accéder à cette ressource.


Enfin

Une brève explication du code ci-dessus.

Tout d'abord, le require en haut indique quels modules doivent être utilisés, veuillez les citer en premier


arg indique le troisième paramètre de la ligne de commande d'entrée, celui ci-dessus ; se fait manuellement Interception ;


la méthode createServer signifie créer un service http, en prenant une fonction comme paramètre, et une fonction anonyme est transmise dans le code de cet article ; 🎜>


req , représente l'objet de requête http (requête), qui contient les informations pertinentes de la requête http du client, telles que la méthode de requête, les paramètres de requête de requête, les informations d'en-tête de requête, etc. >

    res , représente l'objet de réponse http (retour), utilisé pour renvoyer les ressources demandées au client. Les informations peuvent être ajoutées manuellement, telles que les données renvoyées, les informations d'en-tête renvoyées, etc., le code renvoyé, etc. ;
  1. fs, représente l'objet ressource fichier, en particulier vous pouvez accéder à l'API du site officiel de nodejs
  2. chemin, représente la ressource ; objet path, vous pouvez notamment accéder à l'API du site officiel de nodejs.
  3. listen représente le service créé en écoute. Une fois ce port accédé, il entrera dans le rappel de fonction anonyme précédent et renverra la ressource au client.
  4. Pour plus de tutoriels sur la façon de créer un serveur Web simple à l'aide de node.js, veuillez faire attention au site Web PHP chinois !

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