Cannot GET / Nodejs Error

后端 未结 4 1217
面向向阳花
面向向阳花 2020-12-16 16:06

I\'m using the tutorial found here: http://addyosmani.github.io/backbone-fundamentals/#create-a-simple-web-server and added the following code.

// Module dep         


        
4条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-16 16:37

    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.html
    node_modules
    server.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 framework
    mongoose = require( 'mongoose' ); //MongoDB integration
    
    //Create server
    var app = express();
    
    // Configure server
    app.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 here
    var port = 5000;
    app.listen( port, function() {
        console.log( 'Express server listening on port %d in %s mode', port, app.settings.env );
    });
    

提交回复
热议问题