Table des matières
1. Créer un projet
2. Configurer le routage
Si Express est considéré comme un webstorm, alors Koa est sublime
Maison interface Web js tutoriel Node.js utilise Koa pour créer un exemple de didacticiel de projet de base

Node.js utilise Koa pour créer un exemple de didacticiel de projet de base

Jan 09, 2018 am 09:06 AM
javascript node.js 项目

Beaucoup de gens accordent plus d'attention aux nouvelles technologies telles que NodeJs et le framework express ou le framework Koa. Koa est un framework côté serveur ultra-léger créé par l'équipe d'origine d'Express. Par rapport à Express, il a un degré de liberté plus élevé et peut introduire lui-même un middleware. Plus important encore, il utilise ES6 + async, évitant ainsi l'enfer des rappels. Cependant, c'est également à cause de la mise à niveau du code que Koa2 nécessite un environnement node.js de version 7.60 ou supérieure.

1. Créer un projet

Créez manuellement un répertoire de projet, puis générez rapidement un fichier package.json

npm init -y
Copier après la connexion

Installez koa //Version actuelle 2.4.1.

npm install koa -S
Copier après la connexion

Ensuite, créez un app.js

// app.js

const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
 ctx.body = 'Wise Wrong';
});

app.listen(3000);
Copier après la connexion

Ajoutez enfin les instructions de démarrage dans package.json

Un outil des plus basiques 1 L'application koa est complétée de cette manière

Vous pouvez exécuter npm start et visiter http://localhost:3000/ dans le navigateur pour voir l'effet

Si vous avez envie de le créer manuellement Le projet est trop lourd, vous pouvez utiliser l'échafaudage koa-generato pour générer le projet

npm install koa-generator -g
Copier après la connexion
koa2 project_name
Copier après la connexion

Puis npm install sous le projet pour installer les dépendances, npm start pour démarrer le projet

Si vous êtes nouveau sur koa , il est recommandé de lire d'abord ce blog, puis d'utiliser des outils d'échafaudage, afin de mieux comprendre le rôle de chaque package dépendant

2. Configurer le routage

Il y a un ctx dans app.js ci-dessus, il s'agit d'un objet Context fourni par Koa, qui encapsule la requête et la réponse

Chaque requête HTTP créera un Objet contextuel

Nous pouvons obtenir les demandes des utilisateurs via le chemin Context.request.path, puis envoyer du contenu à l'utilisateur via Context.response.body

Le type de retour par défaut de Koa est text/plain If. vous souhaitez renvoyer un fichier html (ou un fichier de module), vous devez modifier le type Context.response

De plus, Context.response peut être abrégé, par exemple, Context.response.type. est abrégé en Context.type, Context.response.body est abrégé en Context.type

Créé sous le projet Un répertoire affiche pour stocker les fichiers html, et crée un index.html dans ce répertoire, puis modifie l'application. js

// app.js// 原生路由

const Koa = require('koa');
const fs = require('fs');
const app = new Koa();

app.use(async (ctx, next) => {
 if (ctx.request.path === '/index') {
 ctx.type = 'text/html';
 ctx.body = fs.createReadStream('./views/index.html');
 } else {
 await next();
 }
});

app.listen(3000);
Copier après la connexion

puis accédez à http://localhost:3000/index dans le navigateur Lorsque vous voyez la page index.html et accédez à d'autres adresses, elle n'est pas trouvée

. Cela semble très maladroit de gérer l'url, nous devons donc introduire le middleware de routage koa-router

npm install koa-router -S
Copier après la connexion

Vous devez faire attention. De plus, lors de l'importation de koa-router, vous devez ajouter un support à la fin :

const router = require('koa-router')();
Copier après la connexion

équivaut à :

const koaRouter = require('koa-router');
const router = koaRouter();
Copier après la connexion

Créer un répertoire de routes pour stocker les fichiers de routage et créer index.js

// routes/index.js

const fs = require('fs');
const router = require('koa-router')()

router.get('/index', async (ctx, next) => {
 ctx.type = 'text/html';
 ctx.body = fs.createReadStream('./views/index.html');
});

module.exports = router
Copier après la connexion
Vous pouvez également utiliser la méthode du préfixe ici pour ajouter une baseUrl

// pour toutes les interfaces dans le fichier router.prefix('/about')

Modifier l'application .js

// app.js

const Koa = require('koa');
const app = new Koa();

const index = require('./routes/index')
app.use(index.routes(), index.allowedMethods())

app.listen(3000);
Copier après la connexion
Les méthodes autorisées ci-dessus sont utilisées pour vérifier la méthode de requête. Si vous utilisez la requête de publication pour accéder à l'interface get, ce sera directement un échec de retour

De plus, vous pouvez ajoutez également des variables dans l'URL et accédez

router.get('/about/:name', async (ctx, next) => {
 ctx.body = `I am ${ctx.params.name}!`;
});
Copier après la connexion
via Context.params.name

3. Ressources statiques

Dans l'index.html ci-dessus, si vous en avez besoin introduisez des ressources statiques telles que CSS, vous devez utiliser koa-static

npm install koa-static -S
Copier après la connexion
Créez un répertoire public pour stocker les ressources statiques

Ajoutez ensuite ce qui suit code dans app.js

const static = require('koa-static');
// 将 public 目录设置为静态资源目录
const main = static(__dirname + '/public');
app.use(main);
Copier après la connexion
En fait, ces trois lignes de code peuvent aussi être optimisées

app.use(require('koa-static')(__dirname + '/public'));
Copier après la connexion
et ensuite ce sera en index Les fichiers correspondants sont introduits en html.

4. Moteur de modèles

L'itinéraire ci-dessus utilise le module fs pour lire directement le fichier html

Lors du développement, il est recommandé pour utiliser le middleware koa-views pour afficher la page

npm install koa-views -S
Copier après la connexion
Définissez le répertoire des vues comme répertoire des modèles dans app.js

const views = require('koa-views')
app.use(views(__dirname + '/views'));
Copier après la connexion
puis ajoutez-le dans le fichier de routage, vous peut utiliser la méthode de rendu

// routes/index.js

const router = require('koa-router')()

router.get('/index', async (ctx, next) => {
 await ctx.render('index');
});

module.exports = router
Copier après la connexion
Ce qui précède est la méthode de rendu direct des fichiers HTML. Si vous souhaitez introduire un moteur de modèle, vous pouvez ajouter le champ d'extension pour définir le type de modèle

5, Conclusion
app.use(views(__dirname + '/views', {
 extension: 'pug' // 以 pug 模版为例
}))
Copier après la connexion

Si Express est considéré comme un webstorm, alors Koa est sublime

Lorsque Express est devenu populaire, ses dépendances compliquées ont été critiquées par de nombreux développeurs

Donc Express L'équipe a désassemblé Express jusqu'à son squelette le plus basique, permettant aux développeurs de l'assembler eux-mêmes. Il s'agit de Koa

Comme le dit l'article, repartir de zéro est trop fastidieux, vous pouvez donc utiliser l'échafaudage koa-generato pour. développer rapidement

Mais je recommande qu'après s'être familiarisé avec Koa, construisez un échafaudage adapté à votre propre projet

Sinon, pourquoi ne pas simplement utiliser Express

Recommandations associées :

Exemple de méthode de limitation de courant du service Koa

Analyse des problèmes de mécanisme de middleware koa dans le nœud

Un exemple de tutoriel sur le développement d'un compte public WeChat avec Node.js+Koa

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Partagez un moyen simple de packager des projets PyCharm Partagez un moyen simple de packager des projets PyCharm Dec 30, 2023 am 09:34 AM

Partagez la méthode d'empaquetage de projet PyCharm simple et facile à comprendre. Avec la popularité de Python, de plus en plus de développeurs utilisent PyCharm comme outil principal pour le développement Python. PyCharm est un puissant environnement de développement intégré qui fournit de nombreuses fonctions pratiques pour nous aider à améliorer l'efficacité du développement. L’une des fonctions importantes est le packaging du projet. Cet article explique comment empaqueter des projets dans PyCharm d'une manière simple et facile à comprendre, et fournit des exemples de code spécifiques. Pourquoi packager des projets ? Développé en Python

L'IA peut-elle vaincre le dernier théorème de Fermat ? Un mathématicien a abandonné 5 ans de sa carrière pour transformer 100 pages de preuve en code L'IA peut-elle vaincre le dernier théorème de Fermat ? Un mathématicien a abandonné 5 ans de sa carrière pour transformer 100 pages de preuve en code Apr 09, 2024 pm 03:20 PM

Le dernier théorème de Fermat, sur le point d'être conquis par l'IA ? Et la partie la plus significative de tout cela est que le dernier théorème de Fermat, que l’IA est sur le point de résoudre, vise précisément à prouver que l’IA est inutile. Autrefois, les mathématiques appartenaient au domaine de l’intelligence humaine pure ; aujourd’hui, ce territoire est déchiffré et piétiné par des algorithmes avancés. Image Le dernier théorème de Fermat est une énigme « notoire » qui intrigue les mathématiciens depuis des siècles. Cela a été prouvé en 1993, et les mathématiciens ont désormais un grand projet : recréer la preuve à l’aide d’ordinateurs. Ils espèrent que toute erreur logique dans cette version de la preuve pourra être vérifiée par un ordinateur. Adresse du projet : https://github.com/riccardobrasca/flt

Regardons de plus près PyCharm : un moyen rapide de supprimer des projets Regardons de plus près PyCharm : un moyen rapide de supprimer des projets Feb 26, 2024 pm 04:21 PM

Titre : En savoir plus sur PyCharm : Un moyen efficace de supprimer des projets Ces dernières années, Python, en tant que langage de programmation puissant et flexible, a été privilégié par de plus en plus de développeurs. Dans le développement de projets Python, il est crucial de choisir un environnement de développement intégré efficace. En tant qu'environnement de développement intégré puissant, PyCharm fournit aux développeurs Python de nombreuses fonctions et outils pratiques, notamment la suppression rapide et efficace des répertoires de projet. Ce qui suit se concentrera sur la façon d'utiliser la suppression dans PyCharm

Conseils pratiques PyCharm : convertir le projet en fichier EXE exécutable Conseils pratiques PyCharm : convertir le projet en fichier EXE exécutable Feb 23, 2024 am 09:33 AM

PyCharm est un puissant environnement de développement intégré Python qui fournit une multitude d'outils de développement et de configurations d'environnement, permettant aux développeurs d'écrire et de déboguer du code plus efficacement. Lors du processus d'utilisation de PyCharm pour le développement de projets Python, nous devons parfois regrouper le projet dans un fichier EXE exécutable pour l'exécuter sur un ordinateur sur lequel aucun environnement Python n'est installé. Cet article explique comment utiliser PyCharm pour convertir un projet en fichier EXE exécutable et donne des exemples de code spécifiques. tête

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Tutoriel PyCharm : Comment supprimer des éléments dans PyCharm ? Tutoriel PyCharm : Comment supprimer des éléments dans PyCharm ? Feb 24, 2024 pm 05:54 PM

PyCharm est un puissant environnement de développement intégré (IDE) Python qui fournit des fonctions riches pour aider les développeurs à écrire et à gérer des projets Python plus efficacement. Lors du développement de projets à l'aide de PyCharm, nous devons parfois supprimer certains projets qui ne sont plus nécessaires pour libérer de l'espace ou nettoyer la liste des projets. Cet article détaillera comment supprimer des projets dans PyCharm et fournira des exemples de code spécifiques. Comment supprimer un projet Ouvrez PyCharm et entrez dans l'interface de la liste de projets. Dans la liste des projets,

Tutoriel de base : Créer un projet Maven à l'aide d'IDEA Tutoriel de base : Créer un projet Maven à l'aide d'IDEA Feb 19, 2024 pm 04:43 PM

IDEA (IntelliJIDEA) est un puissant environnement de développement intégré qui peut aider les développeurs à développer diverses applications Java rapidement et efficacement. Dans le développement de projets Java, l'utilisation de Maven comme outil de gestion de projet peut nous aider à mieux gérer les bibliothèques dépendantes, à créer des projets, etc. Cet article détaillera les étapes de base pour créer un projet Maven dans IDEA, tout en fournissant des exemples de code spécifiques. Étape 1 : Ouvrez IDEA et créez un nouveau projet. Ouvrez IntelliJIDEA

See all articles