Cannot GET / Nodejs Error Cannot GET / Nodejs Error express express

Cannot GET / Nodejs Error


I think you're missing your routes, you need to define at least one route for example '/' to index.

e.g.

app.get('/', function (req, res) {  res.render('index', {});});


Have you checked your folder structure? It seems to me like Express can't find your root directory, which should be a a folder named "site" right under your default directory. Here is how it should look like, according to the tutorial:

node_modules/  .bin/  express/  mongoose/  path/site/  css/  img/  js/  index.htmlpackage.json

For example on my machine, I started getting the same error as you when I renamed my "site" folder as something else. So I would suggest you check that you have the index.html page inside a "site" folder that sits on the same path as your server.js file.

Hope that helps!


Much like leonardocsouza, I had the same problem. To clarify a bit, this is what my folder structure looked like when I ran node server.js

node_modules/app/  index.html  server.js

After printing out the __dirname path, I realized that the __dirname path was where my server was running (app/).

So, the answer to your question is this:

If your server.js file is in the same folder as the files you are trying to render, then

app.use( express.static( path.join( application_root, 'site') ) );

should actually be

app.use(express.static(application_root));

The only time you would want to use the original syntax that you had would be if you had a folder tree like so:

app/  index.htmlnode_modulesserver.js

where index.html is in the app/ directory, whereas server.js is in the root directory (i.e. the same level as the app/ directory).

Side note: Intead of calling the path utility, you can use the syntax application_root + 'site' to join a path.

Overall, your code could look like:

// Module dependencies.var application_root = __dirname,express = require( 'express' ), //Web frameworkmongoose = require( 'mongoose' ); //MongoDB integration//Create servervar app = express();// Configure serverapp.configure( function() {    //Don't change anything here...    //Where to serve static content    app.use( express.static( application_root ) );    //Nothing changes here either...});//Start server --- No changes made herevar port = 5000;app.listen( port, function() {    console.log( 'Express server listening on port %d in %s mode', port, app.settings.env );});