Avoid existSync function on Node.js - Express API controller
I would consider asynchronously checking for all 5 potential
files at once, meaning that checks can be paralellized.  Once all are complete, you can evaluate the compiled results and return the most recent file. 

Depending on your expected call pattern ( for example, are more recent files typically the ones being requested?), you may consider keeping a cached copy of all or part of the file listings in memory to avoid disk read altogether. 

Another thing you may really want to think about is your API interface. I would find it extremely hard to understand that a request for a file that may not actually exist would return a 200 result. This would be very non-standard from a REST API standpoint. Perhaps the client calling this service should own the logic of checking for 5 days’ worth of results. 

Why all the weird formatting steps from Date object? Just output directly to your desired format instead of chaining together a bunch of string manipulation. 

If file is already JSON format, why parse it and then reserialize when delivering response? Had you consider serving these files statically?  You could GREATLY simplify this code (down to literally two or three lines by serving these files statically and letting caller own the logic of looking for days in the past. Not to mention. You can get all the serve static behaviors around cache-control, etags, etc. this way if cacheability matters to your client.