Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript Build a Simple Dynamic Site with Node.js HTTP Methods and Headers Dealing with the POST Body

Using VS Code: Profile search POST sends me to: Index of C:\

I am currently running the project files through VS Code using the terminal. I'm using Node.js v16.14.0. When click 'search' on the index.html page after running the server via the terminal, it just redirects me to Index of C:. All of my code looks the same as the video. I assume it's something in routers, but I'm honestly lost at this point.

From router.js:

// Handle HTTP route GET / and POST / i.e. Home
function home(request, response) {
    // if url == "/" && GET
    if(request.url === "/") {
        if(request.method.toLowerCase() === "get") {
            //show search
            response.writeHead(200, {'Content-Type': 'text/plain'});
            renderer.view("header", {}, response);
            renderer.view("search", {}, response);
            renderer.view('footer', {}, response);
            response.end();
        } else {
            // if url == "/" && POST

            //get the post data from body
            request.on("data", function(postBody) {
                console.log(postBody);
            });
            // extract the username 
            // redirect to username


        }

    }   
}

Also, the app.js file is as follows

let http = require('http');
let router = require('./router.js');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((request, response) => {
    router.home(request, response);
    router.user(request, response);
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/<Visual Studio-URL>/`)
});

1 Answer

Steven Parker
Steven Parker
231,275 Points

I'd bet there's a configuration setting in VSCode for the root server directory, and by default it's the top of the local filesystem ("C:\").

Find that setting and make it point to the folder where your server contents are located.

I'm struggling to find the root server directory. I can only find the root workspace directory, and changing that didn't affect the result of my program.