2015-07-19 72 views
1

我刚刚开始,我在这里有一个准系统应用程序,其中有路径文件./routes/index.js。无法使用Express处理路线

当我浏览到http://localhost:3000/index例如index.js被击中,但没有路线匹配,程序只是直接通过“return router;”。如果我浏览到http://localhost:3000/我再次得到相同的。

所有的浏览器都会考虑一下,然后给我一个ERR_CONNECTION_RESET。

app.js

var express = require('express'); 
var logger = require('morgan'); 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 
var flash = require('connect-flash'); 

mongoose.connect('mongodb://localhost/blah'); 

var app = express(); 

app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(flash()); 

app.use(require('./routes/index')); 

module.exports = app; 

index.js

var express = require('express'); 
var router = express.Router(); 

function authorize(req, res, next) { 
    if (true) { 
     next() 
    } else { 
     res.status(403).send('Forbidden') 
    } 
} 

module.exports = function(){ 

    router.get('/index', function(req, res) { 
     res.send('index'); 
    }); 

    router.get('/hello/:name', function(req, res) { 
     res.send('hello ' + req.params.name + '!'); 
    }); 

    router.get('/', function(req, res) { 
     res.send('root'); 
    }); 

    return router; 
} 

回答

1

app.js缺少行实际启动服务器。你需要补充一点:

app.listen(3000); 
+0

我使用Webstorm所以我相信这是在某种程度上有线(当我启动它时,控制台显示“服务器在端口3000上侦听”)。我可以看到服务器收到的请求。当调试程序只是直接返回路由器(绕过router.gets) – millarnui

+0

'router.get()'操作只是注册路由处理程序。它应该只执行它们,然后在服务器启动时返回,因为启动时无需执行任何操作,只需注册要处理的路由即可。至于webStorm,我已经对你展示的代码进行了评论。我想你是说有更多的代码。也许其他代码也是你问题的一部分。没有看到所有相关的东西我们都不知道。 – jfriend00

0

了那里到底......我改变

module.exports = function(){ 

    router.get('/index', function(req, res) { 
     res.send('index'); 
    }); 

    router.get('/hello/:name', function(req, res) { 
     res.send('hello ' + req.params.name + '!'); 
    }); 

    router.get('/', function(req, res) { 
     res.send('root'); 
    }); 

    return router; 
} 

router.get('/index', function(req, res) { 
    res.send('index'); 
}); 

router.get('/hello/:name', function(req, res) { 
    res.send('hello ' + req.params.name + '!'); 
}); 

router.get('/', function(req, res) { 
    res.send('root'); 
}); 

module.exports = router;