0
votes

I'm trying to get some data in a txt file from my server.js file, but I'm not sure how to obtain that data.

This is my server.js file

const server = http.createServer((req, res) => {
    const { method, url } = req;
    res.status = 200;
    res.setHeader("Content-type", "text/json");
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.setHeader("Access-Control-Allow-Methods", "*");
    res.setHeader("Access-Control-Allow-Headers", "*");

    if (url === "/view-stuff" && method === "GET") {
        console.log("RECIEVED GET REQ");
        let stuffReturned= fs.readFile("string.txt", (err, data) => {
            if (err) {
                throw err;
            } else {
                return data;
            }
        });
        res.writeHead(200, { "Content-Type": "text/plain" });
        res.write(stuffReturned);
    }     
res.end();
});

Here's my client.js file:

function getStuffToview(){
    const request = new XMLHttpRequest();
    request.open("GET", "//localhost:1000//view-stuff", true);
    request.addEventListener("load", function () {
        try {
            console.log(this.responseText);
        } catch (e) {
            console.log(request.status);
        }
    });
    request.send();
});
}

I know it's working to some degree, because my console is logging "RECIEVED GET REQ". However, right after that's logged I get this error: "TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received undefined"

I tried "res.send(stuffReturned)" instead, but it just says "res.send(stuffReturned)" is not a function.

Not sure what to do. Thanks in advance.

I think you want to use fs.readFileSync(). - Barmar
@Barmar thank you, that worked for me, what's the difference? - PSU Change