I'm using Node.js and I'd like to serve /index.html for all URLs.
For example, I'd like to serve /index.html for all these:
foo.com foo.com/index.html foo.com/bling foo.com/blah/index.html
If possible I'd prefer not to change the URL displayed by the browser.
Is this possible and, if so, what's the best way to do it?
You can use, for example, express.js MVC npm module
var express = require('express');
var app = express();
app.all('*', function(req, res){
res.sendfile("index.html");
});
app.listen(3000);
Without express, and if it's the only task your server has to do, you might use the fs module in your http server instance main callback, piping a readStream to the response this way:
http.createServer(function(request, response) {
fs.createReadStream('index.html', {
'bufferSize': 4*1024
}).pipe(response);
});