Des conseils sur l'écriture d'un Dockerfile optimisé pour des applications Node.js.
De nombreuses ressources relatives à la sécurité dans les applications Node.js.
Plusieurs façon de configurer vos scripts de développement lorsque vous développez sur un projet Node.js + TypeScript.
ts-node
et ts-node-dev
semblent être les approches les plus simples.
nodemon
gère aussi bien le TypeScript.
Une lib pour faire du test unitaire sur vos applications Node.js. Grâce au fait qu'elle ne gère que Node et pas les navigateurs, elle se dit 9 fois plus légère que Vitest et 5 fois plus légère que Jest.
Un tuto sur comment mettre en place une authentification à base de JWT avec Fastify, Prisma, le tout en TypeScript.
Bon ça fait beaucoup d'outils mais tout est adaptable et l'idée est de comprendre la logique.
Un peu de nuances sur tous les superlatifs employés pour la promotion de Bun, l'alternative vendue comme extrêmement performante à Node.js.
Un regroupement de bonnes pratiques pour Node.js. Tout n'est évidemment pas à suivre aveuglément, mais si vous débutez c'est une bonne base.
Une gigantesque liste de bonne pratiques pour Node.js. Tout n'est pas à prendre aveuglément mais il y a de très bons points. Une saine lecture donc.
Des bonnes pratiques à adopter pour créer des images Docker de vos apps Node.js.
Si vous vous posez la question de comment démarrer un projet en Node.js, cette lib donne accès à des templates standards.
Vous pouvez bien sûr consulter les templates directement sans passer par la lib et piocher uniquement ce qui vous intéresse.
Une lib pour faire du XML to JSON en Node avec un parser apparemment très efficient.
Les différentes façon de debugger une application Node.js.
J'ai découvert récemment qu'il est possible de debugger un fichier TypeScript alors que c'est la version transpilée (le JS donc) qui est en train de s'exécuter. Bien pratique et ça encourage l'usage de TS côté serveur.
Une introduction à Fastify, un framework web pour Node.js, plus optimisé et rapide que le classique Express.
Il vient en outre avec un grand nombre de plugins officiels pour les usages les plus courants (caching, authentification, sécurité, connecteurs base de donnée, etc.).
Un ORM Node.js assez simple qui se base sur knex.js (qui est un query builder).
Avec Napi rs, il est possible de créer des modules Node développés en Rust. Idéal si vous devez effectuer une tâche très lourde comme parser un très gros fichier CSV de plusieurs centaines de Mo.
Dix règles de sécurité à suivre lorsque vous travaillez avec NPM.
Quelques instructions pour améliorer vos Dockerfile pour Node.js.
# Utiliser une version de Node spécifique pour éviter les surprises lors de nouvelles releases.
FROM node:19.4-alpine
# Configurer Node pour la production.
ENV NODE_ENV production
# Sélectionner un répertoire de travail explicitement.
WORKDIR /usr/src/app
# Copier uniquement les fichiers requis pour installer les dépendances pour une meilleure gestion du cache.
COPY package*.json ./
# Installer uniquement les dépendances de production.
RUN npm ci --only=production
# alternative pour bénéficier du cache :
RUN --mount=type=cache,target=/usr/src/app/.npm \
npm set cache /usr/src/app/.npm && \
npm ci --only=production
# Éviter le mode root.
USER node
# Copier le reste du code source (uniquement les fichiers indispensables) après installation des dépendances.
COPY --chown=node:node ./src/ .
# Indiquer explicitement le port exposé par les containers qui utilisent cette image.
EXPOSE 3000
CMD ["node", "index.js"]
Un nouveau gestionnaire de version pour Node.js, en plus de n, nvm, nvs, fnm.
Il est écrit en Rust et d'après la documentation il fait tout pour être le plus invisible possible. À tester.
Un query builder pour Node.js. L'outil se définit comme un ORM mais de ce que j'ai pu lire, ça ressemble beaucoup plus à un query builder. Une alternative à Knex.js en somme.
Cet article est une bonne introduction.