Un exemple de nœud construisant un serveur via express
Cet article présente principalement le nœud pour construire son propre serveur via express. L'éditeur pense que c'est plutôt bien, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil
Avant-propos
Afin de simuler le projet en ligne, nous avons besoin d'un serveur pour fournir une API nous permettant d'appeler des données. Cette fois, j'ai utilisé le framework express pour écrire l'interface API. Toutes les demandes sont effectuées via des requêtes ajax adressées au serveur pour renvoyer des données. C'est la première fois que j'utilise node pour écrire un backend. C'est essentiellement comme traverser la rivière en cherchant les pierres. S'il y a des lacunes dans l'article, veuillez les signaler.
Installer le framework express
Portail : express officiel
Présentez ensuite le middleware qui doit être introduit. Node lui-même fournit quelques bibliothèques. Nous pouvons le référencer directement via require. Pour les bibliothèques non fournies, nous pouvons également l'installer via npm manuel
var fs = require('fs'); 操作文件模块 var http = require('http'); http模块 var url = require('url'); 获取url信息模块 var qs = require('querystring'); 处理url参数模块 var path = require('path'); 文件路径模块 var bodyParser = require('body-parser'); 请求体对象化 (必须)否则后台无法解析前端发送的body内容
Ensuite, activez le module directement
app.use(bodyParser.json()); // 访问静态资源文件 这里是访问所有dist目录下的静态资源文件 app.use(express.static(path.resolve(__dirname, '../dist'))) app.use(express.static('public')); // 因为是单页应用 所有请求都走/dist/index.html app.get('/', function(req, res) { const html = fs.readFile(path.resolve(__dirname, '../dist/index.html'), 'utf-8'); res.send(html) }); //处理请求跨域 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Content-Type", "application/json;charset=utf-8"); res.header("Access-Control-Allow-Headers", "content-type"); next(); });
Une fois les préparatifs terminés, vous pouvez commencer à écrire l'interface. Concernant la base de données, vous pouvez simuler un json, ou vous pouvez réellement simuler la base de données en ligne.
Ce qui suit sera divisé en trois parties pour la description : connexion à la base de données, opération demandée et opération de demande de fichier.
Connexion à la base de données
Ici, je suppose que vous avez installé la base de données mongodb et l'avez activée avec succès. Lisez attentivement le didacticiel express et vous constaterez que le framework prend en charge mongodb et dispose de nombreux plug-ins d'extension pour utiliser la base de données, tels que mongoose. Ici, nous utilisons Mongoskin officiellement fourni par Express pour créer un lien vers la base de données.
$ npm install mongoskin #####官方实例 var db = require('mongoskin').db('localhost:27017/animals'); db.collection('mamals').find().toArray(function(err, result) { if (err) throw err; console.log(result); });
Une fois l'installation réussie, nous introduisons d'abord la base de données utilisée, le code est le suivant
var db = require('mongoskin').db('mongodb://localhost:27017/blog'); var ObjectId = require('mongodb').ObjectID;
Le code ci-dessus signifie que nous nous sommes connectés avec succès à la base de données du blog et avons activé l'ID privé. L'ID objet est l'ID automatiquement ajouté aux données générées par mongodb. Il peut être utilisé directement. À ce stade, la base de données et le serveur sont connectés.
Traiter la requête envoyée par le front end
Traiter la requête get
/** * 获取文章信息 */ app.get('/article/info', function (req, res) { >>> 获取请求参数 var arg = qs.parse(url.parse(req.url).query); var id = arg.id; >>> 链接数据库根据参数查找文档并返回 db.collection('articleList').find({ "_id": ObjectId(id)}).toArray(function(err, result) { if (err) throw err; console.log(result) res.end(JSON.stringify(result)) }); });
Le code ci-dessus implémente le traitement d'une requête get et obtient les paramètres de l'url via le module de paramètres db est la base de données connectée. Recherchez dans la table de données « articleList » en fonction de l'ID. Après le traitement, renvoyez les données via res.end() pour compléter la réponse.
Traitement des demandes de publication
/** * 提交留言信息 */ app.post('/board/post', function (req, res) { >>>> 获取请求参数 var data = { date: req.body.date, name: req.body.name, content: req.body.content, time: req.body.time, position: req.body.position }; >>> 链接数据库并插入数据 db.collection('board').insert(data, function(err, result) { if(err) { res.end('Error:'+ err) } res.end('提交成功') }); });
Les paramètres de la requête POST sont différents de get, vous pouvez directement transmettre la requête. body Récupère le corps de la requête transmis par le front-end. Obtenez les paramètres via des objets js. Effectuez ensuite des opérations de base de données en fonction des paramètres. À ce stade, les demandes de base ont été introduites. Parlons de la façon de gérer les exigences courantes en matière d'opérations sur les fichiers, telles que le téléchargement d'images.
Traiter les demandes de fichiers depuis le front end
Afin de simplifier l'opération, nous pouvons introduire le module multer pour traiter les fichiers, le code est le suivant
var multer = require('multer'); var storage = multer.diskStorage({ //设置上传后文件路径,uploads文件夹会自动创建。 destination: function (req, file, cb) { cb(null, './public/uploads') }, //给上传文件重命名,获取添加后缀名 filename: function (req, file, cb) { var fileFormat = (file.originalname).split("."); cb(null, file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]); } }); //生成上传模块,让API调用 var upload = multer({ storage: storage }).single('file');
Le code ci-dessus introduit avec succès le module de téléchargement de fichiers. Grâce à ce module, nous pouvons générer rapidement le contenu correspondant. Pour des méthodes d'utilisation spécifiques, vous pouvez consulter la documentation officielle. . Une fois le travail de préparation terminé, utilisez-le dans le projet :
/** * 图片上传 */ app.post('/upload', function (req, res) { upload(req, res, function (err) { if (err) { console.log(err) return } console.log(req.file) res.end(JSON.stringify(req.file)) }) }); //图片上传到服务器 ,向客户端返回文件信息 比如文件的存储位置,之后就可以通过地址访问服务器的图片 /** * 图片删除 */ app.post('/image/delete', function (req, res) { fs.unlink(req.body.path, function(err) { if (err) { return console.error(err); } res.end("文件删除成功!"); }); });
Pour télécharger des images ici, nous utilisons directement le module de téléchargement qui a été écrit auparavant .Quand il est temps Lorsque la demande d'interface réussit, le fichier a été téléchargé avec succès. Si vous avez besoin d'un processus de prévisualisation, vous ne devez pas appeler directement l'interface de téléchargement. Grâce au module natif node fs, nous pouvons également supprimer et modifier les fichiers ajoutés.
Problèmes d'actualisation du mode en ligne et historique rencontrés après la connexion
Nous pouvons considérer le processus en ligne comme un changement d'ordinateur pour exécuter le programme. Ici, j'utilise Alibaba Cloud. serveur. Installez un bon environnement sur le serveur cloud, clonez-y le projet, installez une bibliothèque d'exécution permanente telle que pour toujours, démarrez ~ ok et votre projet s'exécutera toujours. Si vous avez besoin d'un accès www, vous devez également acheter une résolution DNS et un nom de domaine pour pointer vers votre serveur.
Si nous exécutons le projet ci-dessus localement, cela ne posera pratiquement aucun problème. Mais il sera actualisé une fois le projet mis en ligne. Hein? ? 404, qu'est-ce que c'est ? Ouvrez Baidu et recherchez-le. Cela fait beaucoup de feu ~~ Le mode historique est activé du côté actuel, et la prise en charge de l'historique doit également être activée sur le backend. L'environnement express est le suivant :
var history = require('connect-history-api-fallback'); var connect = require('connect'); /////// app.use(history());
Actualisation du code de mise à jour~OK parfait !
Résumé
Si vous voulez bien apprendre quelque chose, vous avez besoin d'une accumulation à long terme. En tant que front-end, une certaine connaissance des bases de données des serveurs peut non seulement nous aider à mieux communiquer avec nos frères (back-end), mais c'est aussi comme un poisson dans l'eau pour le front-end.
Ce 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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution : 1. Vérifiez les paramètres d'eMule pour vous assurer que vous avez entré l'adresse du serveur et le numéro de port corrects ; 2. Vérifiez la connexion réseau, assurez-vous que l'ordinateur est connecté à Internet et réinitialisez le routeur ; est en ligne. Si vos paramètres sont S'il n'y a pas de problème avec la connexion réseau, vous devez vérifier si le serveur est en ligne ; 4. Mettez à jour la version d'eMule, visitez le site officiel d'eMule et téléchargez la dernière version du logiciel eMule ; 5. Demandez de l'aide.

Que dois-je faire si le serveur RPC est indisponible et n'est pas accessible sur le bureau Ces dernières années, les ordinateurs et Internet ont pénétré tous les recoins de nos vies. En tant que technologie de calcul centralisé et de partage de ressources, l'appel de procédure à distance (RPC) joue un rôle essentiel dans la communication réseau. Cependant, nous pouvons parfois rencontrer une situation dans laquelle le serveur RPC n'est pas disponible, ce qui entraîne l'impossibilité d'accéder au bureau. Cet article décrit certaines des causes possibles de ce problème et propose des solutions. Tout d’abord, nous devons comprendre pourquoi le serveur RPC n’est pas disponible. Le serveur RPC est un

En tant qu'utilisateur LINUX, nous devons souvent installer divers logiciels et serveurs sur CentOS. Cet article présentera en détail comment installer Fuse et configurer un serveur sur CentOS pour vous aider à effectuer les opérations associées en douceur. Installation de CentOS fuseFuse est un cadre de système de fichiers en espace utilisateur qui permet aux utilisateurs non privilégiés d'accéder et de faire fonctionner le système de fichiers via un système de fichiers personnalisé. L'installation de Fuse sur CentOS est très simple, suivez simplement les étapes suivantes : 1. Ouvrez le terminal et connectez-vous en tant que. utilisateur root. 2. Utilisez la commande suivante pour installer le package fuse : ```yuminstallfuse3. Confirmez les invites pendant le processus d'installation et entrez `y` pour continuer. 4. Installation terminée

Le rôle d'un relais DHCP est de transmettre les paquets DHCP reçus vers un autre serveur DHCP du réseau, même si les deux serveurs se trouvent sur des sous-réseaux différents. En utilisant un relais DHCP, vous pouvez déployer un serveur DHCP centralisé dans le centre réseau et l'utiliser pour attribuer dynamiquement des adresses IP à tous les sous-réseaux/VLAN du réseau. Dnsmasq est un serveur de protocole DNS et DHCP couramment utilisé qui peut être configuré en tant que serveur relais DHCP pour faciliter la gestion des configurations d'hôtes dynamiques sur le réseau. Dans cet article, nous allons vous montrer comment configurer Dnsmasq comme serveur relais DHCP. Sujets de contenu : Topologie du réseau Configuration d'adresses IP statiques sur un relais DHCP D sur un serveur DHCP centralisé

Dans la transmission de données sur réseau, les serveurs proxy IP jouent un rôle important, aidant les utilisateurs à masquer leurs véritables adresses IP, à protéger la confidentialité et à améliorer la vitesse d'accès. Dans cet article, nous présenterons le guide des meilleures pratiques sur la façon de créer un serveur proxy IP avec PHP et fournirons des exemples de code spécifiques. Qu'est-ce qu'un serveur proxy IP ? Un serveur proxy IP est un serveur intermédiaire situé entre l'utilisateur et le serveur cible. Il agit comme une station de transfert entre l'utilisateur et le serveur cible, transmettant les demandes et les réponses de l'utilisateur. En utilisant un serveur proxy IP

Que dois-je faire si je ne peux pas accéder au jeu lorsque le serveur Epic est hors ligne ? Ce problème a dû être rencontré par de nombreux amis. Lorsque cette invite apparaît, le jeu authentique ne peut pas être démarré. Ce problème est généralement dû à des interférences du réseau et du logiciel de sécurité. Alors, comment doit-il être résolu ? J'aimerais partager la solution avec vous, j'espère que le didacticiel logiciel d'aujourd'hui pourra vous aider à résoudre le problème. Que faire si le serveur Epic ne peut pas accéder au jeu lorsqu'il est hors ligne : 1. Il peut être interféré par un logiciel de sécurité. Fermez la plateforme de jeu et le logiciel de sécurité, puis redémarrez. 2. La seconde est que le réseau fluctue trop. Essayez de redémarrer le routeur pour voir s'il fonctionne. Si les conditions sont correctes, vous pouvez essayer d'utiliser le réseau mobile 5g pour fonctionner. 3. Alors il y en aura peut-être plus

Explication détaillée et guide d'installation pour les nœuds de pignon Cet article introduira l'écosystème de pignon en détail - nœuds PI, un rôle clé dans l'écosystème de pignon et fournir des étapes complètes pour l'installation et la configuration. Après le lancement du réseau de test de la blockchain pèse, les nœuds PI sont devenus une partie importante de nombreux pionniers participant activement aux tests, se préparant à la prochaine version du réseau principal. Si vous ne connaissez pas encore Pinetwork, veuillez vous référer à ce qu'est Picoin? Quel est le prix de l'inscription? PI Utilisation, exploitation minière et sécurité. Qu'est-ce que Pinetwork? Le projet Pinetwork a commencé en 2019 et possède sa pièce exclusive de crypto-monnaie PI. Le projet vise à en créer un que tout le monde peut participer

Comment installer l’extension PHPFFmpeg sur le serveur ? L'installation de l'extension PHPFFmpeg sur le serveur peut nous aider à traiter les fichiers audio et vidéo dans les projets PHP et à implémenter des fonctions telles que l'encodage, le décodage, l'édition et le traitement des fichiers audio et vidéo. Cet article explique comment installer l'extension PHPFFmpeg sur le serveur, ainsi que des exemples de code spécifiques. Tout d’abord, nous devons nous assurer que PHP et FFmpeg sont installés sur le serveur. Si FFmpeg n'est pas installé, vous pouvez suivre les étapes ci-dessous pour installer FFmpe
