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.` (même couche), ou `node server debug
` (sous-couche), node server
` sera demandé, indiquant que le service a été démarré avec succès server running at http://www.php.cn/:8085/
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
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. >
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 !