Node.js Express res.sendFile not doing anything when called in app.post

When I call res.sendFile inside of app.post, nothing happens. Status code of the request is 200. Any ideas?

Here’s the code for my app.

import express from "express";
import Boggle from "solve-boggle";
import { rateLimit } from "express-rate-limit";
import { dirname } from "path";
import { fileURLToPath } from "url";
import { readFileSync, writeFile } from "fs";
const __dirname = dirname(fileURLToPath(import.meta.url));

const app = express();
const PORT = process.env.PORT || 5001;

let user_name;
let board;

app.use(express.urlencoded({extended:true}));
app.use(express.static(__dirname));
app.use(express.json());

app.get("/", (req, res) => {
    res.sendFile(__dirname + "/public/index.html");
});

app.get("/new-board", (req, res) => {
    console.log("new board req: ", req.body);
    board = new Boggle(5);
    res.send(board);
});

app.get("/solution", (req, res) => {
    board.solve(words => {
        res.send(words);
    });
});

app.get("/name", (req, res) => {
    res.sendFile(__dirname + "/public/play.html");
})

// using get instead of post to prevent form resubmission
app.post("/name", (req, res) => {
    user_name = req.body.name;
    console.log("body: ", req.body);
    console.log("name: ", req.body.name);
    res.sendFile(__dirname + "/public/play.html");
});

// publish score
app.post("/publish-score", (req, res) => {
    console.log("request name: ", user_name);
    console.log("request score: ", req.body.score);

    let user_score = req.body.score;

    // read scores file
    let data = readFileSync("./data/scores.json", (error, data) => {
        if(error){
            console.log(error);
            return;
        };
    });
        
    // check if name already in score list
    let names = [];
    let scores_data = JSON.parse(data);
    scores_data.daily_puzzle.scores.map((entry) => names.push(entry.name));
    console.log("names: ", names);
    if (names.includes(user_name)) {
        console.log("Name used already!");
        res.sendFile(__dirname + "/public/dup_name.html");
        return;
    };

    // add name and score to list
    let push_name = user_name;
    let push_score = user_score;
    if (user_name == undefined){push_name = "NoName"}; 
    if (user_score == undefined){push_score = "NoScore"}; 
    scores_data.daily_puzzle.scores.push({
        "name": push_name,
        "score": push_score
    });

    // console.log(scores_data.daily_puzzle.scores);        

    writeFile("./data/scores.json", JSON.stringify(scores_data), (error) => {
        if (error) {
            console.log("An error has occurred ", error);
            return;
        }
        console.log("Data written successfully to the file");
    });  
    // }); 
});

app.listen(PORT, () => {console.log(`Listening on port ${PORT}`)});

I’d like to have the server send dup_name.html when the use tries to publish a score with a name that’s already in scores.json. I’ve tried moving it to different location in a[[.pot but no luck.