Maison > interface Web > js tutoriel > le corps du texte

Premiers pas avec la création de serveurs Node.js, Express, Ejs, Mongodb et le développement d'applications à partir de scratch_node.js

WBOY
Libérer: 2016-05-16 16:25:31
original
1722 Les gens l'ont consulté

Cet article est adapté du "[Traduction] Guide de démarrage pour les développeurs front-end, construction de Node.js, Express, Jade, Mongodb Server from Scratch". La raison pour laquelle j'ai changé Jade en Ejs est parce que je pense qu'ejs. est plus adapté. Les habitudes des programmeurs WEB, plus précisément, devraient être plus conformes aux habitudes d'utilisation des programmeurs PHP et ASP. Bon, sans plus tarder, commençons directement le tutoriel.

Partie 1 – Installation de 15 minutes

Si vous voulez vraiment apprendre à partir de zéro, prenez d'abord le temps de configurer l'environnement. Ce n'est pas difficile, j'utilise Win8, donc cela semble un peu différent des tutoriels pour utiliser Mac et Ubuntu ou d'autres systèmes * nix, mais c'est fondamentalement la même chose.

Étape 1 – Installer Node.JS

C'est simple, allez sur le Site officiel de Node.js, cliquez sur le gros bouton vert Installer, il détectera automatiquement votre système et vous proposera de télécharger le bon fichier d'installation. (Sinon, cliquez sur le bouton Télécharger pour sélectionner le téléchargement dont vous avez besoin). Exécutez le programme d’installation et vous êtes prêt à partir. Node.js est installé et NPM (Node Package Manager) vous permet d'installer facilement divers packages utiles dans Node.

Étape 2 – Installer Express

Maintenant que Node est en cours d'exécution, nous avons besoin de quelques éléments qui nous permettront de réellement créer un site utilisable. Ensuite, nous devons installer Express, qui est un framework qui transforme Node d'une application primitive en un serveur Web qui ressemble davantage au serveur Web que nous utilisons habituellement. Nous devons commencer par Express car nous avons besoin de la fonctionnalité d’échafaudage qu’il fournit. On entre cette commande :

Copier le code Le code est le suivant :

c:node>npm install -g express

De cette façon, Express est correctement installé dans notre nœud et a été rendu disponible dans le monde entier. Vous verrez un tas de résultats dans la fenêtre de ligne de commande, principalement des requêtes http 304 et GET, c'est normal. Express doit être installé et disponible.

Étape 3 – Créer un projet Express

Nous allons utiliser Express et Ejs, mais pas pour le prétraitement CSS. Nous allons écrire du CSS à la main. Nous devons utiliser Ejs ou d'autres moteurs de modèles pour traiter les données Node et Express. Si vous connaissez HTML, Ejs n'est pas difficile. N’oubliez pas que vous devez vous concentrer, sinon les choses peuvent facilement mal tourner.

Maintenant, dans la même fenêtre de ligne de commande, tapez :

Copier le code Le code est le suivant :

c:node>express –sessions nodetest1

Appuyez sur Entrée et vous verrez un tas de choses comme ceci :
Copier le code Le code est le suivant :

C:node>express --sessions nodetest1
créer : nodetest1
créer : nodetest1/package.json
créer : nodetest1/app.js
créer : nodetest1/routes
créer : nodetest1/routes/index.js
créer : nodetest1/routes/user.js
créer : nodetest1/views
créer : nodetest1/views/index.ejs
créer : nodetest1/public/images
créer : nodetest1/public/javascripts
créer : nodetest1/public
créer : nodetest1/public/stylesheets
créer : nodetest1/public/stylesheets/style.css

installer les dépendances :
$ cd nodetest1 && npm install

lancez l'application :
$ application de nœud

Étape 4 – Modifier les dépendances

D'accord, nous avons maintenant une structure de base du projet, mais nous n'avons pas encore terminé. Vous remarquerez que le processus d'installation express crée un fichier appelé package.json dans votre répertoire nodetest1. Ouvrez ce fichier avec un éditeur de texte. Il devrait ressembler à ceci.

Copier le code Le code est le suivant :

{
"name": "nom-application",
"version": "0.0.1",
"privé": vrai,
"scripts": {
"start": "node app.js"
},
"dépendances": {
"express": "3.4.8",
"ejs": "*"
>
>

Il s'agit d'un fichier au format JSON standard qui représente notre application et ses dépendances. Il faut ajouter un petit quelque chose. Par exemple, les appels à mongodb et Monk. Remplacez la partie dépendances par ceci :
Copier le code Le code est le suivant :

"dépendances": {
"express": "3.4.8",
"ejs": "*",
"mongodb": "*",
"moine": "*"
>

Étape 5 – Installer les dépendances

Nous avons maintenant défini les dépendances du projet. Le * indiquera à NPM "d'installer la dernière version". Revenez à la fenêtre de ligne de commande, entrez dans le répertoire nodetest1 et entrez :

Copier le code Le code est le suivant :

C:nodenodetest1>npm install

Cela produira un tas de choses. En effet, il lit directement notre fichier JSON modifié, identifie les dépendances qu'il contient et installe les fichiers nécessaires. Lorsque NPM est installé, vous devriez disposer d'un répertoire node_modules contenant tous les fichiers de dépendances dont notre projet a besoin.

Nous avons maintenant une application entièrement fonctionnelle et elle est prête à fonctionner. Essayons ! Assurez-vous que votre répertoire actuel est le répertoire nodetest1, saisissez :

Copier le code Le code est le suivant :

C:nodenodetest1>node app.js

Après avoir appuyé sur Entrée, vous verrez :
Copier le code Le code est le suivant :

Serveur express en écoute sur le port 3000

merveilleux. Ouvrez le navigateur et entrez http://localhost:3000 Vous devriez voir une page de bienvenue pour Express.

Vous disposez désormais de votre propre serveur Web Node JS fonctionnant avec le moteur Express et le moteur de modèles HTML Ejs. Ce n'est pas si difficile, non ?

Partie 2 – D'accord, écrivons « Bonjour le monde ! »

Ouvrez votre éditeur de texte couramment utilisé ou un autre IDE. Personnellement, j'aime utiliser Sublime Text. Ouvrez app.js dans votre répertoire nodetest1. Ce fichier est le cœur de votre application. Vous devriez voir quelque chose comme ceci :

Copier le code Le code est le suivant :

var express = require('express');
var routes = require('./routes');
var utilisateur = require('./routes/user');
var http = require('http');
var chemin = require('chemin');

Cela définit simplement un tas de variables JavaScript et pointe vers certains packages et dépendances, fonctions de nœud et itinéraires. Les routes sont équivalentes à une collection de modèles et de contrôleurs dans MVC. Elles sont responsables du transfert des requêtes et contiennent également une certaine logique de traitement. Express a créé toutes ces choses pour nous. Ignorons la route utilisateur pour l'instant et commençons à écrire la route de niveau supérieur (contrôlée par routesindex.js).

Écrivez à la fin du fichier ci-dessus :

Copier le code Le code est le suivant :

var app = express();

Cette phrase est cruciale. Il instancie Express et l'attribue à notre variable d'application. Le contenu suivant utilisera cette variable pour configurer un ensemble de paramètres Express. Continuez à taper :
Copier le code Le code est le suivant :

// tous les environnements
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view moteur', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

Cela définit le port, le répertoire dans lequel rechercher les vues, le moteur de modèle à utiliser pour traiter ces vues et quelques autres éléments. Notez également la dernière ligne, qui indique à Express d'héberger les fichiers statiques dans le répertoire public/ en tant que fichiers dans le répertoire de niveau supérieur. Par exemple, votre répertoire d'images est stocké dans c:nodenodetest1publicimages, mais l'adresse d'accès réelle est http://localhost:3000/images/.

Remarque : Vous devez mettre cette ligne

Copier le code Le code est le suivant :

app.use(express.bodyParser());

Changer pour
Copier le code Le code est le suivant :

app.use(express.urlencoded());

Il s'agit d'ignorer certains messages d'avertissement dans la fenêtre Node pendant l'exécution de l'application. Principalement quelques modifications futures possibles d'Express et de ses plug-ins. Si vous n'effectuez pas cette modification, vous recevrez de nombreux avertissements indiquant que certaines fonctions sont sur le point d'expirer lorsque le programme est en cours d'exécution.

Puis ajoutez :

Copier le code Le code est le suivant :

// développement uniquement
if ('development' == app.get('env')) {
app.use(express.errorHandler());
>

De cette façon, vous pouvez effectuer une vérification des erreurs pendant le développement.

Continuer à augmenter :

Copier le code Le code est le suivant :

app.get('/', routes.index);
app.get('/users', user.list);

Cela indique au routeur quelle route utiliser lorsqu'une requête URI arrive. Notez que la variable user a été définie précédemment et mappée sur /routes/user.js. Nous appellerons la fonction de liste définie dans ce fichier. Une liste d'utilisateurs peut être affichée ici.

Continuer à augmenter :

Copier le code Le code est le suivant :

http.createServer(app).listen(app.get('port'), function(){
console.log('Serveur express en écoute sur le port ' app.get('port'));
});

Enfin, créez un serveur http et démarrez-le. C'est à peu près tout.

(Le contenu ci-dessus est complet dans le modèle généré par le nouvel express, pas besoin de l'écrire vous-même)

Maintenant, écrivons quelque chose d'utile. Nous n'écrirons pas "Hello World!" directement dans notre page d'index. Nous profiterons de cette occasion pour apprendre à utiliser le routage de route et découvrir le fonctionnement du moteur Ejs. Ajoutez une ligne après la section app.get() du fichier app.js ci-dessus :

app.get('/helloworld', routes.helloworld);
Si vous appuyez sur ctrl C dans la fenêtre de ligne de commande pour terminer le processus app.js, puis le redémarrez, puis utilisez un navigateur pour accéder à http://localhost:3000/helloworld, vous obtiendrez une erreur de nœud très intéressante et ce qui suit message dans la fenêtre de ligne de commande : Un tas d'invites de crash. C'est parce que nous n'avons pas modifié le routage pour gérer ce chemin. Faisons ceci. Dans votre éditeur, accédez au répertoire routes, recherchez index.js et ouvrez-le. Cela devrait ressembler à ceci :

Copier le code Le code est le suivant :

/*
* OBTENIR la page d'accueil.
*/

exports.index = fonction(req, res){
res.render('index', { title: 'Express' });
};


Ajoutons une nouvelle page. Je préfère créer un fichier de route indépendant pour chaque répertoire de premier niveau, mais nous ne prévoyons pas maintenant de créer une structure de répertoires complète pour helloworld sous vues, nous utiliserons donc le routage d'index pour l'instant. A la fin de ce fichier ajoutez :
Copier le code Le code est le suivant :

exports.helloworld = function(req, res){
res.render('helloworld', { title: 'Bonjour le monde !' });
};

Il sera responsable du traitement de cette demande d'URI, mais maintenant nous n'avons pas de véritable page à restituer pour res.render. C'est le travail d'Ejs. Accédez à votre répertoire de vues, ouvrez index.ejs et enregistrez-le sous le fichier helloworld.ejs. Cela devrait maintenant ressembler à ceci :
Copier le code Le code est le suivant :




<%= titre %>



<%= titre %>


Bienvenue dans <%= titre %>





Cela devrait être facile à comprendre.
Enregistrez le fichier. Appuyez sur ctrl c dans la fenêtre de ligne de commande pour interrompre app.js, puis tapez node app.js pour le redémarrer. Astuce : Lorsque vous modifiez un fichier modèle ejs, vous n'avez pas besoin de redémarrer le serveur. Mais lorsque vous modifiez un fichier js, tel que app.js ou un fichier js de routage, vous devez redémarrer le serveur pour voir l'effet.

Après le démarrage du serveur, notez que le serveur ouvre http://localhost:3000/helloworld, et vous devriez pouvoir voir cette belle interface :

D'accord ! Maintenant que nous disposons d’un itinéraire capable de gérer notre modèle, nous voyons l’effet souhaité. Ensuite, nous créerons un modèle (couche de données).

Partie 3 – Création de la base de données et lecture des données

Étape 1 – Installer Mongodb

Fermons l'éditeur de texte et revenons à la fenêtre de ligne de commande. Utilisez d’abord un navigateur, ouvrez http://mongodb.org/ et téléchargez Mongo. Cliquez sur le lien de téléchargement dans le menu principal pour trouver la version adaptée à votre système. Pour Win8 64 bits, téléchargez la version 64 bits *2008R2. Après le téléchargement, il s'agit d'un fichier zip, décompressez-le dans c:mongo ou c:program filesmongo ou ailleurs, cela n'a pas d'importance. Nous sauvegardons les données dans notre répertoire nodetest1.

Étape 2 – Exécutez Mongod et mongo

Créez un sous-répertoire data dans notre répertoire nodetest1, puis entrez le répertoire bin de votre répertoire mongodb dans la fenêtre de ligne de commande et saisissez :

Copier le code Le code est le suivant :

mongod –dbpath c:nodenodetest1data

Vous verrez que le serveur mongo démarre. Le premier démarrage prendra un certain temps car il doit pré-allouer de l'espace disque et d'autres tâches. Lorsqu'il affiche "[initandlisten] en attente de connexions sur le port 27017", c'est fait. Il n'y a rien d'autre à faire, le serveur est déjà en cours d'exécution. Vous devez maintenant ouvrir une autre fenêtre de ligne de commande, entrer dans le répertoire bin du répertoire mongo et entrer
Copier le code Le code est le suivant :

mongo

Vous verrez quelques invites comme celle-ci :
Copier le code Le code est le suivant :

c:mongo>mongo
Version du shell MongoDB : 2.4.5
connexion à : tester

Si vous regardez la fenêtre Mongod à ce moment-là, vous verrez une invite indiquant qu'une connexion a été établie. Nous utiliserons ensuite ce client de ligne de commande pour traiter manuellement notre base de données, mais cela n'est pas nécessaire pour notre site Web.

Étape 3 – Créer une base de données

Ne vous inquiétez pas de l'invite ci-dessus pour vous connecter pour tester. C'est juste la base de données par défaut que mongo utilise lorsque vous ne spécifiez pas de base de données. Il ne créera même pas la base de données nommée test à moins que vous n'y ajoutiez un enregistrement. Créons notre propre base de données. Dans la fenêtre de ligne de commande mongo, saisissez :

Copier le code Le code est le suivant :

utilisez nodetest1

Il ne créera pas la base de données à moins que nous y insérons des données.

Étape 4 – Ajouter quelques données

Ma fonctionnalité préférée de MongoDB est qu'il utilise JSON comme structure de données, ce qui signifie que je le connais très bien. Si vous n'êtes pas familier avec JSON, lisez-le d'abord ; cela dépasse le cadre de ce didacticiel.

Nous ajoutons quelques données à la collection. Dans ce tutoriel, nous n'avons qu'une simple base de données, ne laissant que deux champs : nom d'utilisateur et email. Nos données ressemblent à ceci :

Copier le code Le code est le suivant :

{
"_id" : 1234,
"nom d'utilisateur" : "cwbuecheler",
"email" : "cwbuecheler@nospam.com"
>

Vous pouvez créer vos propres valeurs de champ _id, mais je pense qu'il vaut mieux laisser mongo le faire. Cela crée une valeur unique pour chaque enregistrement. Voyons comment cela fonctionne. Dans la fenêtre mongo, saisissez :
Copier le code Le code est le suivant :

db.usercollection.insert({ « nom d'utilisateur » : « testuser1″, « email » : « testuser1@testdomain.com » })

Remarque importante : db est la base de données nodetest1 que nous avons créée ci-dessus et usercollection est notre collection, qui équivaut à une table de données. Notez que nous n’avons pas besoin de créer cette collection à l’avance, elle sera créée automatiquement lors de sa première utilisation. D'accord, appuyez sur Entrée. Si tout se passe bien, vous ne verrez... rien. Ce n'est pas bon, entrez :
Copier le code Le code est le suivant :

db.usercollection.find().pretty()

Si vous êtes curieux, la jolie méthode formate la sortie en ajoutant des nouvelles lignes et des indentations. Il devrait lire :
Copier le code Le code est le suivant :

{
"_id" : ObjectId("5202b481d2184d390cbf6eca"),
"nom d'utilisateur" : "testuser1",
"email" : "testuser1@testdomain.com"
>

Bien sûr, l'ObjectID que vous obtenez doit être différent, mongo en générera automatiquement un. Si vous avez déjà utilisé les services d'interface JSON, pensez-vous maintenant, wow, cela devrait être très simple d'appeler cela sur le Web ! Eh bien, vous avez raison.

Conseil : en tant que service formel, vous ne devriez pas souhaiter que toutes les données soient stockées au niveau supérieur. Concernant la conception de la structure de données mongodb, jetez un œil à Google.

Maintenant que nous avons une donnée, ajoutons-en d’autres. Entrez dans la fenêtre mongo :

Copier le code Le code est le suivant :

newstuff = [{ "nom d'utilisateur" : "testuser2", "email" : "testuser2@testdomain.com" }, { "username" : "testuser3", "email" : "testuser3@testdomain.com" }]
db.usercollection.insert(newstuff);

Notez que nous transmettons plusieurs éléments de données à la collection via une donnée à la fois. Comme c'est simple ! Utilisez la commande find ci-dessus et vous verrez ces trois éléments de données.

Intégrons maintenant le serveur Web et la base de données construits précédemment.

Étape 5 – Connectez mongo au nœud

Créons maintenant une page pour afficher les enregistrements de la base de données dans un beau tableau. Voici le contenu HTML que nous allons générer :

Copier le code Le code est le suivant :

Je sais que ce n'est pas très scientifique, mais c'est bon que vous compreniez. Nous voulons simplement créer un simple programme de lecture et d’écriture de base de données, pas créer un site Web complet. Tout d'abord, nous ajoutons un peu de contenu à app.js (le cœur et l'âme de notre application) afin de pouvoir nous connecter à mongodb. Ouvrez c:nodenodetest1app.js, en haut vous verrez :
Copier le code Le code est le suivant :

var express = require('express');
var routes = require('./routes');
var utilisateur = require('./routes/user');
var http = require('http');
var chemin = require('chemin');

En dessous, ajoutez :
Copier le code Le code est le suivant :

// Nouveau code
var mongo = require('mongodb');
var moine = require('moine');
var db = moine('localhost:27017/nodetest1');

Ces lignes indiqueront à l'application que nous devons nous connecter à MongoDB. Nous utilisons Monk pour être responsable de cette connexion. L'emplacement de notre base de données est localhost:27017/nodetest1. Notez que 27017 est le port par défaut de mongodb. Si vous modifiez le port pour une raison quelconque, enregistrez-le ici et modifiez-le en conséquence. Regardez maintenant en bas du fichier :
Copier le code Le code est le suivant :

app.get('/', routes.index);
app.get('/users', user.list);
app.get('/helloworld', routes.helloworld);

Ajoutez une ligne ci-dessous :
Copier le code Le code est le suivant :

app.get('/userlist', routes.userlist(db));

Cette ligne indique à l'application que lorsqu'un utilisateur accède au chemin /userlist, nous devons transmettre la variable db à la route userlist. Mais nous n’avons pas encore de route de liste d’utilisateurs, alors créons-en une maintenant.

Étape 6 – Lire les données en mongo et afficher

Ouvrez c:nodenodetest1routesidnex.js avec votre éditeur. Il y a deux routes, index et hello world. Ajoutons maintenant la troisième :

Copier le code Le code est le suivant :

exports.userlist = function(db) {
Fonction de retour (req, res) {
      var collection = db.get('usercollection');
        collection.find({},{},function(e,docs){
              res.render('userlist', {
« liste d'utilisateurs » : docs
            });
        });
};
};

Eh bien, les choses se compliquent un peu. Ici, nous définissons d'abord une fonction pour recevoir la variable db que nous avons transmise, puis appelons un rendu de page identique aux deux routes précédentes. Nous lui disons qu'il doit lire la collection d'utilisateurs, effectuer une recherche et enregistrer les données renvoyées dans la variable docs. Une fois que nous avons lu le contenu, nous appelons render pour afficher la page du modèle de liste d'utilisateurs et transmettons la variable docs obtenue en tant que variable de liste d'utilisateurs dans le moteur de modèle.

Créez ensuite notre modèle Ejs. Ouvrez index.ejs dans le répertoire vues, enregistrez-le sous userlist.ejs, puis modifiez son code HTML pour qu'il ressemble à ceci :

Copier le code Le code est le suivant :




USERLIST



Liste d'utilisateurs






Enregistrez le fichier et redémarrez le serveur de nœud. J'espère que vous vous rappelez comment redémarrer. Ouvrez le navigateur et visitez http://localhost:3000/userlist Vous devriez voir une interface comme celle-ci : .

Cliquez sur le bouton Soumettre et vous verrez une erreur « Impossible de publier sur /adduser ». Réparons-le.

Étape 2 – Créez votre fonction de traitement de base de données

Comme précédemment, nous modifions app.js, puis le fichier de route, puis le modèle ejs. Cependant, il n'est pas nécessaire d'avoir un modèle ejs ici, car notre article sera publié plus tard. Ajoutez une ligne après la section app.get() de app.js :

Copier le code Le code est le suivant :

app.post('/adduser', routes.adduser(db));

Notez qu'il s'agit de app.post et non d'app.get. Établissons l'itinéraire. De retour dans routes/index.js, créez notre fonction d'insertion de base de données. Celui-ci est relativement volumineux, je vous suggère donc d'écrire un bon commentaire.
Copier le code Le code est le suivant :

exports.adduser = fonction (db) {
Fonction de retour (req, res) {

// Récupère les valeurs de notre formulaire. Celles-ci reposent sur les attributs "name"
        var nomutilisateur = req.body.nomutilisateur;
        var userEmail = req.body.useremail;

// Définir notre collection
      var collection = db.get('usercollection');

// Soumettre à la base de données
        collection.insert({
"nom d'utilisateur" : nom d'utilisateur,
"email" : utilisateurEmail
           }, fonction (err, doc) {
               si (erreur) {
// En cas d'échec, renvoie l'erreur
                   res.send("Un problème est survenu lors de l'ajout des informations à la base de données.");
            }
             autre {
// Si cela a fonctionné, définissez l'en-tête pour que la barre d'adresse ne dise toujours pas /adduser
                   res.location("liste d'utilisateurs");
// Et en avant vers la page réussite
                    res.redirect("userlist");
            }
        });

}
>


Évidemment, dans un projet réel, vous devez encore effectuer de nombreuses vérifications. Par exemple, les noms d'utilisateur et les adresses e-mail ne peuvent pas être répétés et les adresses e-mail doivent respecter certaines règles de format. Mais ignorons cela pour l’instant. Vous pouvez voir que lorsque l'insertion dans la base de données est terminée, l'utilisateur revient à la page de la liste d'utilisateurs où il devrait voir les données nouvellement insérées.

Est-ce la meilleure façon ?

Étape 3 – Connectez-vous à la base de données et écrivez les données

Assurez-vous que votre mongod fonctionne ! Redémarrez ensuite votre serveur de nœuds. Ouvrez http://localhost:3000/newuser avec un navigateur. Maintenant, nous remplissons du contenu et cliquons sur le bouton Soumettre. Si tout se passe bien, nous devrions être de retour sur la page de la liste d'utilisateurs et voir les nouvelles données que nous venons d'ajouter.

Maintenant que nous avons officiellement terminé la lecture et l'écriture de la base de données Mongodb à l'aide de Node.js, Express et Ejs, nous sommes déjà des programmeurs géniaux.

Félicitations, vraiment. Si vous lisez attentivement ce didacticiel et l'étudiez attentivement au lieu de simplement copier le code, vous devriez avoir une notion complète des itinéraires, des vues, de la lecture et de l'écriture des données. C’est tout ce que vous devez savoir pour développer n’importe quel autre site Web complet ! Peu importe ce que vous pensez, je pense que c'est plutôt cool.

Partie 5 – Prochaines étapes

Commencez maintenant et vos possibilités sont infinies. Vous pouvez jeter un œil à Mongoose, un autre package Node pour travailler avec les bases de données MongoDB. Il est plus grand que Monk et possède plus de fonctionnalités. Vous pouvez également jeter un œil à Stylus, un moteur CSS pour Express. Vous pouvez utiliser le didacticiel Google Node Express Mongo pour voir ce qui suit. Étudiez dur et progressez chaque jour.

J'espère que ce tutoriel pourra être utile, j'ai écrit ceci parce que lorsque j'ai commencé à apprendre, j'avais vraiment besoin de quelque chose comme ça, mais je ne l'ai pas trouvé. Si vous êtes arrivé jusqu'ici, merci beaucoup !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!