Et puis ils répondent à des besoins différents.
Des alternatives spéciales au PHP il en existe depuis plus de 15 ans, et depuis l'explosion Ruby on Rails et Django vers 2005, c'est on-ne-peut-plus vrai. Et pourtant, PHP tient toujours.
C'est avant tout parce que lorsqu'on a une codebase de plusieurs millions de lignes en PHP, on a pas forcément envie de se jeter sur la nouvelle mode pour tout changer, mais aussi parce que typiquement un développeur Rails a pas le même profil qu'un dev PHP, ni les mêmes besoins.
Avec Node (et n'importe quel langage utilisable sur serveur, c'est-à-dire n'importe quel langage de programmation au final), c'est la même chose. Node répond à un besoin particulier, très très ciblé. Et c'est tellement devenu à la mode ("does it WEB SCAAAAALE ???") que c'est utilisé un peu pour tout et n'importe quoi (comme les bases NoSQL), alors que ça ne convient pas forcément à toutes les situations, loin de là.
Dans quelques mois/années le soufflé sera retombé et quand on aura un peu plus de recul, l'engouement baissera, comme ça l'a toujours fait. Jusqu'à l'apparition d'un nouveau framework "révolutionnaire" (pour l'anecdote, Node et les frameworks en Erlang visent le même secteur, simplement Node le traite de manière "impérative un chouilla fonctionnelle" avec un traitement par callbacks asynchrones liés à des évènements, tandis qu'en Erlang on traite ça par un système de queues de messages et de receveurs, de manière beaucoup plus fonctionnelle. Ça fait des années que les problèmes que tente de résoudre Node sont résolus par l'Erlang, avec en plus une architecture qui rend le scaling beaucoup, beaucoup plus efficace et le code bien plus terse (mais comme c'est du fonctionnel, que c'est plus compliqué et que ça a pas une syntaxe algolesque, ça a jamais décollé et ça décollera sans doute jamais)).