No, it will not be blocked. node.js will read a file in chunks and then send those chunks to the client. In between chunks it will service other requests.
Reading files & sending data over the network are I/O bound operations. node.js will first ask the operating system to read a part of a file and while the OS is doing that node.js will service another request. When the OS gets back to node.js with the data, node.js will then tell the OS to send that data to the client. While the data is being sent, node.js will service another request.
Try it for yourself:
Create a large file
dd if=/dev/zero of=file.dat bs=1G count=1
Run this node.js app
var http = require('http');
var fs = require('fs');
var i = 1;
http.createServer(function (request, response) {
console.log('starting #' + i++);
var stream = fs.createReadStream('file.dat', { bufferSize: 64 * 1024 });
stream.pipe(response);
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');
Request http://127.0.0.1:8000/
several times and watch node.js handle them all.
If you're going to serve lots of large files, you may want experiment with differnt bufferSize values.