They are not, generally, if you mean a 'route' as in this:
app.get('/path', function (req, res) {
var thisvariablerighthere = 1;
});
Javascript is lexically scoped, so each time a function is run, variables declared within it (look for the var keyword!) are given a new allocation.
Functions within that scope can see 'outward' to those variables, but things outside can't see 'in' and see the varying variables within a function.
The thing that surprises you coming from PHP is that unlike PHP, node _is_ the web server, so its toplevel variables actually last the duration of the server's run, not any individual request. PHP, on the other hand, its top level is matched lifetime-wise to a request.
Aria