How to make Vim detect filetype from the shebang line?

Following the instructions listed in :help new-filetype-scripts, create the scripts.vim file in the user runtime directory (~/.vim/ on Unix-like systems), and write the following script in it:

if did_filetype()
    finish
endif
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
    setfiletype javascript
endif

If you're interested in a plugin, one does exist for this:

https://github.com/vitalk/vim-shebang

This contains a pattern for node -> javascript highlighting.

AddShebangPattern! javascript ^#!.*\s\+node\>

create this file ~/.vim/ftdetect/node.vim with this contents

fun! s:DetectNode()
    if getline(1) == '#!/usr/bin/env node'
        set ft=javascript
    endif
endfun

autocmd BufNewFile,BufRead * call s:DetectNode()