Eu respondo minha própria pergunta para o caso de alguém tropeçar no mesmo problema.
Os pacotes podem ser instalados como local e global , em que local é o padrão. Devemos instalar o pacote como local quando precisarmos e como global quando quisermos acessá-lo dentro do shell. Para instalar um pacote como global basta adicionar -g no meu caso eu corro
sudo npm install -g express
e agora funciona.
Editar
Usar -g e exigir mais tarde pode levar a UNMET DEPENDENCY express . Isso pode ser resolvido usando -d
sudo npm install -d express