J'ai récemment eu besoin de terminer une conception de cours et j'ai été chargé par le chef de projet (chef d'équipe) d'écrire des fonctions d'interface. L'éditeur suivant partagera avec vous à travers cet article comment construire un petit serveur en utilisant Node. je peux m'y référer
Utiliser un nœud pour construire un petit serveur (en fait, il analyse l'URL et envoie le fichier au client)
J'ai récemment eu besoin de terminer une conception de cours et a été chargé par le chef de projet (chef d'équipe) d'écrire l'interface, mais j'ai toujours eu l'impression que je voulais seulement écrire le front-end. Il manque quelque chose, donc je veux écrire le backend moi-même et jouer avec.
Pendant cette période, j'étais un peu confus quant au langage à utiliser. J'avais initialement prévu d'apprendre PHP, mais ensuite j'y ai réfléchi, ne serait-il pas bien d'utiliser nodejs. ? Cela consolide les fondations de js et fait d'une pierre deux coups, ce qui est génial.
Au cours du processus d'apprentissage de Node, j'ai appris à utiliser Node pour implémenter un serveur. Cela ressemble à un bon résumé des modules appris précédemment. Les quatre modules de base fs stream chemin http
sont utilisés. Le code est le suivant : (Contient un anglais approximatif commentaires veuillez me pardonner)
'use strict' var url = require('url'); var path = require('path'); var fs = require('fs'); var http = require('http'); //get the current path //var root = path.resolve('.');//以当前的目录为服务器的根目录 var root = path.resolve(process.argv[2] || '.');//以输入的参数作为服务器的根目录,如果没有输入参数就将当前目录作为服务器根目录 console.log('local root dir :' + root); //create server var server = http.createServer(function(request, response) { //get the path of URL var pathname = url.parse(request.url).pathname; //get the local path var filepath = path.join(root, pathname); //get the file stat and output the request file by callback function fs.stat(filepath, function(err, stat) { if(!err && stat.isFile()) { console.log('200' + request.url); response.writeHead(200); fs.createReadStream(filepath).pipe(response);//没有必要手动读取文件内容。由于response对象本身是一个Writable Stream,直接用pipe()方法就实现了自动读取文件内容并输出到HTTP响应。 } else { console.log('404' + request.url); response.writeHead(404); response.end('404 Not Found'); } }); }); server.listen(8080); console.log('Server is running at http://127.0.0.1:8080/');
Pour certains d'entre eux. eux Explication de la fonction :
path.resolve() 路径寻航(这名字不错) path.resolve([from…], to)
a une explication intéressante : cela équivaut à appeler en continu la commande cd du système
par exemple :
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile') //相当于: cd foo/bar cd /tmp/file/ cd .. cd a/../subfile1 path.join([path1],path[2]...) 路径合并
pour tout copier Les noms sont concaténés avec path.seq, puis formatés avec normailze
par exemple :
path.join('///foo', 'bar', '//baz/asdf', 'quux', '..'); =>'/foo/bar/baz/asdf'
Puisque normalize
est mentionné, alors :
Chemin formaté path.normalize(p)
Formate les chemins qui ne sont pas conformes aux spécifications, simplifiant ainsi le traitement de divers jugements de chemin complexes parmi les développeurs
par exemple :
path.normalize('/foo/bar//baz/asdf/quux/..'); => '/foo/bar/baz/asdf'
http.response .end() termine la réponse et indique au client que tous les messages ont été envoyés. Cette fonction doit être appelée une fois lorsque tout le contenu à renvoyer a été envoyé. Si cette fonction n'est pas appelée, le client sera dans l'état d'attente pour toujours.
Utilisation :
response.end([data], [encoding])
Les caractères à afficher après l'exécution de data end(). Si la valeur de data est spécifiée, cela signifie qu'après l'exécution de réponse.end(), , exécutera ensuite un réponse.write(data, encoding);
encodage correspondant à l'encodage des caractères des données
[Recommandations associées]
2.Exemple détaillé d'utilisation de JavaScript pour convertir des caractères chinois en pinyin
3Partage de 15 expressions régulières js couramment utilisées<.>4.
Exemple détaillé d'implémentation de la barre d'outils de recherche via javascriptIntroduction détaillée à l'utilisation d'async et d'attente en JavascriptCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!