Serve Static Files on a Dynamic Route using Express

express, node.js

Solution

Okay. I found an example in the source code for Express' response object. This is a slightly modified version of that example.

app.get('/user/:uid/files/*', function(req, res){
    var uid = req.params.uid,
        path = req.params[0] ? req.params[0] : 'index.html';
    res.sendFile(path, {root: './public'});
});

It uses the `res.sendFile` method.

NOTE: security changes to `sendFile` require the use of the `root` option.

Problem

I want to serve static files as is commonly done with `express.static(static_path)` but on a dynamic route as is commonly done with ``` app.get('/my/dynamic/:route', function(req, res){ // serve stuff here }); ``` A solution is hinted at in this comment by one of the developers but it isn't immediately clear to me what he means.

Original source