Code nodejs incroyable

WBOY
WBOYoriginal
2023-05-14 12:02:37627parcourir

Node.js est un interpréteur du langage JavaScript. Il peut être utilisé pour développer différents types d'applications telles que des applications serveur et des outils de ligne de commande. Il présente les avantages d'être rapide, évolutif et efficace, et a attiré de plus en plus de développeurs. . service. Cet article présentera quelques fonctionnalités phares et d'excellents exemples de code de Node.js, dans l'espoir d'aider les lecteurs à mieux comprendre et utiliser Node.js.

1. Programmation asynchrone

La fonctionnalité la plus importante de Node.js est la programmation asynchrone. Puisque Node.js est un modèle monothread, toutes les opérations d'E/S sont asynchrones, ce qui le rend adapté à une concurrence élevée et à de gros volumes de données. .Excellentes performances. Node.js implémente un traitement asynchrone via des fonctions de rappel, ce qui améliore l'efficacité de l'ensemble de l'application dans le traitement des E/S.

Ce qui suit est un exemple simple :

// 异步读取文件
const fs = require('fs');
fs.readFile('test.txt', function (err, data) {
  if (err) throw err;
  console.log(data);
});
console.log('程序执行完毕');

Résultat d'exécution :

程序执行完毕
<Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>

Comme vous pouvez le voir, le programme affiche d'abord "Exécution du programme terminée", puis affiche le contenu du fichier. En effet, la lecture du fichier est asynchrone et la fonction de rappel ne peut pas être exécutée tant que la lecture du fichier n'est pas terminée.

La programmation asynchrone peut améliorer efficacement les performances et les capacités de concurrence de Node.js, mais elle augmentera également la complexité du code et la difficulté du débogage. Afin d'éviter une imbrication excessive des rappels, Node.js propose également d'autres méthodes de programmation asynchrone, telles que Promise et Async/Await.

2. Développement modulaire

Node.js prend en charge le développement modulaire, qui peut diviser l'application en plusieurs modules. Chaque module est responsable d'une fonction, ce qui facilite la réutilisation et la maintenance du code. Les modules Node.js peuvent être du code écrit par vous-même ou par des bibliothèques tierces. Ils sont généralement publiés sous la forme de packages npm que tout le monde peut installer et utiliser.

Ce qui suit est un exemple de module personnalisé :

// greeter.js
function greet(name) {
    console.log(`Hello, ${name}!`);
}
module.exports = {
    greet
}

// main.js
const greeter = require('./greeter');
greeter.greet('John');

Résultat d'exécution :

Hello, John!

Parmi eux, greeter.js est un module personnalisé, et la fonction greet est utilisé pour la sortie Greeting, module.exports est utilisé pour exposer le contenu du module au monde extérieur. Dans main.js, introduisez le module greeter via la fonction require, puis appelez-y la fonction greet . greeter.js是自定义的模块,greet函数用于输出问候语,module.exports用于向外暴露模块的内容。在main.js中通过require函数引入greeter模块,然后调用其中的greet函数。

模块化开发可以使代码更加清晰和易于维护,也便于自己的代码被其他人使用和分享。

三、web开发

Node.js还可以用于开发web应用程序,借助于Express等框架,可以轻松搭建起一个web应用程序。

下面是一个使用Express框架的Hello World示例:

const express = require('express');
const app = express();
app.get('/', function (req, res) {
  res.send('Hello World!');
});
app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

通过npm install express --save安装Express框架后,可以使用require函数来引入框架。然后通过app.get函数来定义路由,当请求的URL为/时,输出Hello World!。最后通过app.listen函数来启动服务器程序。

Node.js的web开发具有很好的可扩展性和灵活性,且与前端JavaScript语言十分相似,开发门槛较低。

四、测试

Node.js的测试框架非常成熟,可以使用Mocha、Jasmine、Chai等框架进行单元测试、集成测试等各类测试。

下面是一个使用Mocha框架的简单测试示例:

const assert = require('assert');
describe('Array', function() {
  describe('#indexOf()', function() {
    it('should return -1 when the value is not present', function() {
      assert.equal([1,2,3].indexOf(4), -1);
    });
  });
});

在测试文件中使用describe函数和it函数来定义测试用例,然后使用assert.equal

Le développement modulaire peut rendre le code plus clair et plus facile à maintenir, et facilite également l'utilisation et le partage de votre code par d'autres.

3. Développement Web

Node.js peut également être utilisé pour développer des applications Web. À l'aide de frameworks tels qu'Express, vous pouvez facilement créer une application Web.

Ce qui suit est un exemple Hello World utilisant le framework Express : 🎜rrreee🎜Après avoir installé le framework Express via npm install express --save, vous pouvez utiliser la fonction require pour présenter le cadre. Définissez ensuite l'itinéraire via la fonction app.get Lorsque l'URL demandée est /, Hello World! est affiché. Enfin, le programme serveur est démarré via la fonction app.listen. 🎜🎜Le développement Web Node.js a une bonne évolutivité et flexibilité, et est très similaire au langage JavaScript frontal, et le seuil de développement est faible. 🎜🎜4. Tests🎜🎜Le framework de test de Node.js est très mature et vous pouvez utiliser Mocha, Jasmine, Chai et d'autres frameworks pour les tests unitaires, les tests d'intégration et d'autres types de tests. 🎜🎜Voici un exemple de test simple utilisant le framework Mocha : 🎜rrreee🎜Utilisez la fonction describe et la fonction it dans le fichier de test pour définir le scénario de test, puis utilisez le assert.equal pour affirmer si les résultats du test sont comme prévu. Si les résultats des tests ne répondent pas aux attentes, le framework Mocha affichera des informations détaillées sur les erreurs pour permettre aux développeurs de déboguer et de résoudre les problèmes. 🎜🎜Les tests sont un moyen important pour garantir la qualité des applications et une partie essentielle du processus de développement d'applications Node.js. 🎜🎜Résumé🎜🎜Cet article présente les fonctions phares et d'excellents exemples de code de Node.js dans la programmation asynchrone, le développement modulaire, le développement et les tests Web, etc. J'espère qu'il pourra aider les lecteurs à mieux comprendre et utiliser Node.js. À mesure que Node.js continue de se développer et de s'améliorer, il sera appliqué dans un plus large éventail de domaines et les développeurs auront davantage d'opportunités d'accumuler une expérience pratique et un excellent code, favorisant ainsi la prospérité et le développement de l'écosystème Node.js. 🎜

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:
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