Des bonnes pratiques pour développer avec Node.js. Très instructif :)
Un ORM construit au dessus de knex.js (qui est un query builder), qui a la particularité de ne pas nécessiter de configuration de schémas au préalable. La création des tables et colonnes se fait à la volée en fonction du code.
C'est bien sûr inspiré de RedBeanPHP.
Une alternative à Node.js ou Deno. Ce runtime JavaScript vante ses très bonnes performances. Il présente l'avantage d'être compatible avec une majorité des packages npm.
nvs est un gestionnaire de version pour Node.js. Il permet d'avoir plusieurs versions de Node.js installées sur votre machine et de passer de l'une à l'autre avec une simple commande. Il a l'avantage de fonctionner aussi bien sous Windows que Linux et MacOS. Par contre j'ai noté des soucis sous Windows, et cet article m'a aidé à les résoudre.
En gros, il ne faut pas faire l'installation via Chocolatey comme il est conseillé de le faire dans la doc. Il est préférable de passer par le setup manuel en ligne de commande qui est au final tout aussi simple. Sans quoi, nvs est inutilisable avec Git Bash par exemple.
Le tout est à faire dans un terminal avec les droits administrateur :
set NVS_HOME=%LOCALAPPDATA%\nvs
set NVS_HOME=%ProgramData%\nvs
git clone https://github.com/jasongin/nvs "%NVS_HOME%"
"%NVS_HOME%\nvs.cmd" install
nvs add lts
nvs use <the name of the version installed>
nvs link <the name of the version installed>
Un Dockerfile simple pour créer une image Docker d'application Node.js qui permet de faire des requêtes sur DB Oracle (il faut aller voir l'update 3 en bas de la page pour la version la plus pertinente).
Il manque juste wget. Je copie colle ma version très légèrement modifiée ci-dessous :
FROM node:16-buster-slim
WORKDIR /tmp
RUN apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade && apt-get install -y alien libaio1 wget
RUN wget https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64.rpm
RUN alien -i --scripts oracle-instantclient*.rpm
RUN rm -f oracle-instantclient19.3*.rpm && apt-get -y autoremove && apt-get -y clean
WORKDIR /myapp
ADD package.json /myapp/
ADD index.js /myapp/
RUN npm install
CMD exec node index.js
Node.js préconise un nouveau gestionnaire de version pour avoir plusieurs version installées en parallèle. Il marche sur Windows, Linux et MacOS contrairement à NVM.
Ghost 4 est de sortie.
Je trouve qu'il s'éloigne un peu de la philosophie "KISS" qui m'avait séduit au début. Ils ont fait des choix et ils les assument. L'outil est maintenant une vraie alternative open source à Medium, avec une gestion très avancée des auteurs et des subscribers. Des aspects qui ne m'intéressent pas à titre personnel. Pareil pour les intégrations avec des outils tiers.
Mais ça reste un très bel outil.
Mettre à jour npm avec nvm pour Windows n'est pas une mince affaire. Voici une façon de faire. Il faut aussi s'assurer que votre path pointe prioritairement sur la version de npm du répertoire d'installation de nodejs (Program Files) et non pas celle de AppData.
Pour vérifier, faites where npm
.
Un query builder pour Node.js. Un peu comme fluentPDO pour PHP.
En général je les préfère aux ORM, c'est un meilleur compromis dans bien des cas.
Un nouveau serveur web minimaliste en Node.js.
Un petit outil pour lister tous les dossiers node_modules sur votre ordi ainsi que l'espace qu'ils occupent. Vous pouvez ensuite supprimer ceux que vous voulez avec la barre d'espace.
Ça paraît idiot mais pour quelqu'un qui fait du dev front, les dossiers node_modules peuvent devenir conséquents à l'échelle du système.
Très bon article sur Artillery que j'utilise beaucoup en local pour faire des petits tests de charge. Très facile à mettre en place !
Une sorte d'ORM Node.js qui semble être un bon compromis. Il se base sur le query builder Knex et ajoute quelques fonctionnalités pour faciliter les relations one-to-one, one-to-many, many-to-many et polymorphiques. Mais ce n'est en aucun cas une usine à gaz qui impose ses choix et vous pouvez à tout moment utiliser l'instance de Knex si nécessaire.
Un outil à utiliser en production pour gérer vos applications Node.js. Ça permet de s'assurer que l'application se relance en cas d'erreur critique, de lancer plusieurs instances en parallèle (1 par coeur de votre CPU par exemple), et pas mal d'autres choses.
Via https://medium.freecodecamp.org/you-should-never-ever-run-directly-against-node-js-in-production-maybe-7fdfaed51ec6 (le premier commentaire est pertinent).
L'utilisation d'ORM ne doit pas se faire sans avoir bien compris ce qui ça implique en terme de complexité. Dans bien des cas, un builder de query (type knex en Node.js) est plus efficace et plus facile à maintenir.
Un outil pour vérifier la couverture de test d'un projet Node.js.
Un micro framework Node.js (~260 lignes de code) pour faire des micro API.