I am using Express 4.13, and I met some problems when I tried to serve the files:

```
function doServeFile(name, fullpath, res, download) {
    if (fullpath) {
        if (download)
            res.download(fullpath, name);
        else {
            res.sendFile(fullpath, {}, function (err) {
                console.info(err);
            });
        }
    }
    else {
        res.status(404);
    }
}

function serveFile(id, res, download) {
    Model.findById(id).then(file=> {
        var fullPath = Config.uploadDest + "/" + file.path;
        doServeFile(file.filename, fullPath, res, download)
    }).catch(Util.dbErrorHandler);
}
router.get("/:id", function (req, res, next) {
    serveFile(req.params.id, res);
});
router.get("/download/:id", function (req, res, next) {
    serveFile(req.params.id, res, true);
});

```

As the codes shown, once I send request `/1` to the server, it will retrieve the file whose id is `1` to get the file path, and then use the `res.sendFile` to serve the file to client.

However when I run the application, I found that the request will hang on too long to have the response. But I can see the logs like this:

`---try send file:D:/file_upload/1464578330791_user.jpg`

It seems that the file has been fetched, but the `res.sendFile` does not complete its job.

Also, when I tried `/download/1`, the file can be downloaded.

What's going on ?