[LINUX] Essayez de créer un serveur HTTP en utilisant Node.js

introduction

Cet article est écrit par un étudiant qui étudie JS au lieu d'un mémo. Ne vous attendez pas au contenu.

1. Créez un environnement virtuel

Cette fois, ce sera fait sur Ubuntu, alors démarrez l'environnement virtuel avec iTerm2.

Où ça a commencé

  1. Boîte virtuelle
  2. vagabond Ubuntu est utilisé dans un environnement virtuel qui utilise deux logiciels. cd ~/vagrant/ubuntu vagrant up vagrant ssh

Accédez au répertoire dans lequel Ubuntu est installé. vagrant up est une commande pour démarrer Ubuntu installé sur un PC virtuel, et vagrant ssh se connecte à SSH avec l'ensemble de machines virtuelles Vagrant.

2. Préparez un modèle pour le programme

Écrivez ce qui suit dans le répertoire.

echo "'use strict';" >nom de fichier

La première ligne est écrite lors du démarrage d'un nouveau projet avec du fil.

3. Ecrire un programme

Décrivez ce qui suit dans le fichier décrit précédemment.

const http = require('http');
const server = http.createServer((request, response) => {
  response.writeHead(200, {
    'Content-Type': 'text/plain; charset=utf-8'
  });
  response.write(request.headers['Tout va bien']);
  response.end();
});
server.listen(8000, () => {
  console.log('Listening on 8000' );
});

La première ligne est une description de l'utilisation de JS en mode strict.

La deuxième ligne affecte le module http à l'argument http.

Les lignes 3 à 9 concernent le serveur. Je construis un serveur en utilisant le module http affecté à l'argument. Voir ci-dessous pour la méthode de description.

http.createServer(Traitement côté serveur)


Cette fois, la fonction de flèche est utilisée dans le traitement côté serveur, la requête est affectée au premier argument et la réponse est affectée au second.

res.writeHead(200, {


  'Content-Type': 'text/plain; charset=utf-8'
});

Ce code écrit un en-tête de réponse qui définit les informations gérées par le serveur, ainsi qu'un code d'état de réussite de 200. La 7ème ligne utilise la fonction d'écriture pour afficher la chaîne de caractères dans l'en-tête de la demande. En fonction du contenu que vous souhaitez afficher, vous pouvez également écrire comme suit.

res.write(


    '<!DOCTYPE html><html lang="ja"><body><h1>Chaîne</h1></body></html>'
  );

La 8ème ligne indique que le serveur a fini d'écrire.

À partir de la 10e ligne, le port de démarrage du serveur est défini sur 8000 et la fonction d'écoute est utilisée pour vérifier en permanence les demandes provenant d'un port spécifique. Cette fois, la chaîne de caractères est affichée sur la console dès qu'il y a une demande.

4. Essayez de démarrer le serveur

Écrivez ce qui suit et vérifiez le fonctionnement avec REPL.

Si la chaîne de caractères de la console est affichée, elle réussit. Je vous remercie pour votre travail acharné!!

Qu'est-ce que le fil

yarn est un gestionnaire de packages (https://yarnpkg.com/en/) qui a le même rôle que npm, qui est automatiquement installé lorsque vous installez node. Vous pouvez installer des packages plus rapidement que npm en installant en parallèle.

Qu'est-ce qu'un module http?

Le "module http" est utilisé pour créer des fonctionnalités en tant que serveur HTTP ou client HTTP. Vous pouvez publier votre site Web sur le net et envoyer et recevoir des données à partir de formulaires. Bien sûr, il sera possible de créer non seulement des sites Web statiques, mais également de grands services Web comme Twitter.

Qu'est-ce qu'un port (voir: https://www.nic.ad.jp/ja/basics/terms/port-number.html)

Dans la communication TCP / IP, un ordinateur sur le réseau peut être identifié de manière unique s'il existe une adresse IP, mais il n'est pas possible de déterminer à quel programme de l'ordinateur envoyer le paquet de communication par la seule adresse IP. Utilisez le numéro de port pour déterminer à quel programme transmettre le paquet de communication.

Recommended Posts

Essayez de créer un serveur HTTP en utilisant Node.js
Créez facilement un serveur API à l'aide du module go-json-rest
Essayez d'exploiter un fichier Excel en utilisant Python (Pandas / XlsxWriter) ①
J'ai essayé de sortir le journal d'accès au serveur en utilisant Node.js
Ecrire un serveur HTTP / 2 en Python
[Serveur de location Sakura] Essayez d'utiliser flask.
Essayez d'obtenir des statistiques en utilisant e-Stat
Essayez de détecter les mouvements de fusion en utilisant AnyMotion
Essayez d'utiliser le framework web de Python Django (1) - De l'installation au démarrage du serveur
Essayez d'utiliser Excel en utilisant Python (Xlwings)
Créer une application à l'aide de l'API Spotify
Essayez d'utiliser n pour rétrograder la version de Node.js que vous avez installée
[Python] [Word] [python-docx] Essayez de créer un modèle de phrase de mot en Python en utilisant python-docx
Essayez de générer une image avec aliénation
J'ai créé un environnement pour essayer d'utiliser TensorFlow sur mac, donc mon mémo
Essayez de créer un site de gestion Todo en utilisant WebSocket avec Django (Swamp Dragon)
J'ai essayé de créer un environnement à vérifier régulièrement en utilisant Selenium avec AWS Fargate
Comment créer un agent de ressources compatible OCF
Créer une instance de GPU AWS pour entraîner StyleNet
Essayez de créer une nouvelle commande sous Linux
Lancer un serveur HTTP dans le répertoire courant
Créer un compte à partir de la création d'un serveur de messagerie CentOS
Créer un serveur "Hello World" (HTTP) dans Tornado
Essayez d'utiliser une classe orientée objet dans R (méthode R6)
Introduction à Scapy ② (transmission ICMP, HTTP (TCP) avec Scapy)
Créez rapidement un serveur API avec Python + Falcon
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Essayez d'utiliser Cookiecutter
Essayez d'utiliser PDFMiner
Essayez d'utiliser des géopandas
Essayez d'utiliser Selenium
Essayez d'utiliser pandas.DataFrame
J'ai essayé de fonctionner à partir de Postman en utilisant Cisco Guest Shell comme serveur API
Essayez d'utiliser django-swiftbrowser
Essayez d'utiliser matplotlib
Essayez d'utiliser tf.metrics
Essayez d'utiliser PyODE
J'obtiens une erreur lorsque j'essaie d'élever Python à la série 3 en utilisant pyenv dans Catalina
Créer un serveur local GIF animé avec Python + Flask
Comment créer un article à partir de la ligne de commande
Erreur fatale dans le lanceur: impossible de créer le processus avec '"'
Essayez de créer un Checkbutton dynamiquement avec Tkinter en Python
(Python) Essayez de développer une application Web en utilisant Django
Créez un fichier image à l'aide de PIL (Python Imaging Library).
Essayez de créer une API RESTful avec MVC à l'aide de Flask 1.0.2
Un moyen simple de créer un module d'importation avec jupyter
Erreur fatale dans le lanceur: impossible de créer le processus avec '"'
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
Essayez de supprimer des tweets en masse à l'aide de l'API de Twitter
Comment créer un serveur HTTPS avec Go / Gin
Préparation à l'utilisation d'Ansible sur un serveur Linux existant
Comment créer un téléchargeur d'image avec Bottle (Python)
Créer un serveur Web en langage Go (net / http) (1)
Comment créer un simple script serveur / client TCP
Essayez d'extraire des mots à haute fréquence en utilisant NLTK (python)
[Apprentissage automatique] Essayez de détecter des objets à l'aide de la recherche sélective
Essayez de résoudre le Sudoku à une vitesse explosive en utilisant Numpy