无法GET / Nodejs错误

我使用的教程在这里find: http : //addyosmani.github.io/backbone-fundamentals/#create-a-simple-web-server并添加了下面的代码。

// Module dependencies. var application_root = __dirname, express = require( 'express' ), //Web framework path = require( 'path' ), //Utilities for dealing with file paths mongoose = require( 'mongoose' ); //MongoDB integration //Create server var app = express(); // Configure server app.configure( function() { //parses request body and populates request.body app.use( express.bodyParser() ); //checks request.body for HTTP method overrides app.use( express.methodOverride() ); //perform route lookup based on url and HTTP method app.use( app.router ); //Where to serve static content app.use( express.static( path.join( application_root, 'site') ) ); //Show all errors in development app.use( express.errorHandler({ dumpExceptions: true, showStack: true })); }); //Start server var port = 5000; app.listen( port, function() { console.log( 'Express server listening on port %d in %s mode', port, app.settings.env ); }); 

启动服务器与node server.js我得到一个错误,说Cannot GET /当我访问localhost:5000 ,我只是想知道如果有人知道这个错误很多,快递和节点是我的新?

我想你错过了你的路线,你至less需要定义一条路线,例如'/'来索引。

例如

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

你有没有检查你的文件夹结构? 在我看来,像Express无法find你的根目录,这应该是一个名为“网站”的文件夹就在你的默认目录下。 根据教程,以下是它的样子:

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

例如,在我的机器上,当我将我的“网站”文件夹重命名为其他内容时,我开始得到相同的错误。 所以我build议你检查一下你的index.html页面是否位于server.js文件所在path的“site”文件夹中。

希望有所帮助!

就像leonardocsouza,我有同样的问题。 为了澄清一下,当我运行node server.js时,这就是我的文件夹结构的样子

 node_modules/ app/ index.html server.js 

打印完__dirnamepath后,我意识到__dirnamepath是我的服务器运行的地方( app/ )。

所以,你的问题的答案是这样的:

如果您的server.js文件与您要呈现的文件在同一文件夹中,那么

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

实际上应该是

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

唯一一次你想使用原来的语法,如果你有像这样的文件夹树:

 app/ index.html node_modules server.js 

其中index.html位于app/目录中,而server.js位于根目录(即与app/目录相同的级别)。

注意:调用path实用程序时,可以使用语法application_root + 'site'joinpath。

总体而言,您的代码可能如下所示:

 // 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 ); });