无法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
打印完__dirname
path后,我意识到__dirname
path是我的服务器运行的地方( 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 ); });
- 在不注册路由模块的情况下创buildExpressJS路由
- NodeJS Express中每个请求的全局范围
- 获取“第一个参数必须是string或缓冲区”错误
- Nodejs使用表单中的数据为单个条目快速查询mongolab
- 如何从basicAuth(Express)注销
- 如何从node.js中的mysql获取最近添加的recode id
- 在WebStorm中使用supertest会产生“参数types不能分配给参数types”和“未parsing的函数或方法”
- 如何configuration多个会话的快递和护照
- 当我创build一个引用另一个mongoose对象的地方的架构时,如何防止mongoose创buildid的?