I am using Node to grab a PDF from the server and send it to my React frontend.  Then I want to display that PDF in the browser in a new tab.  It's working fairly well, except the URL of the new tab with the PDF is not ideal.  The URL of the new tab looks like: blob:http://localhost:3000/71659 but I would like it to look like http://localhost:3000/71659.pdf.  No 'blob' and with a pdf extension like when I would click on a pdf on the web just like the examples here: https://file-examples.com/index.php/sample-documents-download/sample-pdf-download/
My current code that handles the saving of the blob and opening it is this:
.then((res) => {
    console.log(res);
    const file = new Blob([res.data], {
        type: 'application/pdf'
    });
    //Build a URL from the file
    const fileURL = URL.createObjectURL(file);
    window.open(fileURL, '_blank');
});
And this is my Node route the sends the stream:
router.get('/openPDFFile', async (req, res) => {
    console.log('we got to the server!!  with: ', req.query);
    const pdfFilename = req.query.pdf;
    const pdfFilepath = `./path/to/pdf/${pdfFilename}`;
    router.get();
    const src = fs.createReadStream(pdfFilepath);
    res.writeHead(200, {
        'Content-Type': 'application/pdf',
        'Content-Disposition': 'inline; filename=sample.pdf'
    });
    src.pipe(res);
});
Now I'm wondering if instead of sending the stream over the wire and converting it to a blob, if I can just simply create a route to that PDF from Node.  Something like /PDF/${pdfFilename}.  And then my React will just open that URL in a new tab?
Update - Here is my latest Node route based on x00's answer:
router.get('/openPDFFile', async (req, res) => {
    console.log('we got to the server!!  with: ', req.query);
    const pretty_PDF_name = req.query.pdf;
    const pdfFilename = (await SDS.getPDFFileName({ pretty_PDF_name }))
        .dataValues.sheet_file_name;
    console.log('pdfFilename: ', pdfFilename);
    const cleanPDFName =
        pretty_PDF_name
            .substring(0, pretty_PDF_name.length - 4)
            .replace(/[ ,.]/g, '') + '.pdf';
    const pdfFilepath = '\\path\\to\\file\\' + pdfFilename;
    const fullFilePath = path.join(__dirname + '/../' + pdfFilepath);
    console.log(cleanPDFName, fullFilePath);
    router.get('/pdf/' + cleanPDFName, async (req, res) => {
        res.sendFile(fullFilePath);
    });
    // router.get('/pdf/' + cleanPDFName, express.static(fullFilePath));
    // const src = fs.createReadStream(pdfFilepath);
    //
    // res.writeHead(200, {
    //  'Content-Type': 'application/pdf',
    //  'Content-Disposition': 'inline; filename=sample.pdf'
    // });
    //
    // src.pipe(res);
    // return res.json({ fileuploaded: cleanPDFName });
});
I had seen the express.static way as well and was trying that too.
 
     
     
    