Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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

Jeffrey Lawton
Jeffrey Lawton
4,884 Points

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


        }

    }   
}
Jeffrey Lawton
Jeffrey Lawton
4,884 Points

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
217,455 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.

Jeffrey Lawton
Jeffrey Lawton
4,884 Points

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.