Mse*_*enb 4 routing http node.js express
与工作express.js的第一次,和我被困在加入我的第一条路线.
我的路线定义app.js如下:
app.get('/user/:id/photos', function(req,res){
res.send('user' + req.params.id);
});
Run Code Online (Sandbox Code Playgroud)
然而,卷曲http://localhost:3000/user/1/photos 只会导致"无法获取"错误.
Express中包含的索引文件似乎工作得很好.
这是我的快递app.js文件:
var express = require('express'),
routes = require('./routes');
var app = module.exports = express.createServer();
// Configuration
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function() {
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
app.configure('production', function() {
app.use(express.errorHandler());
});
// Routes
app.get('/', routes.index);
app.get('/test', routes.test);
app.get('/user/:id/photos', function(req, res) {
res.send('user' + req.params.id);
});
app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
Run Code Online (Sandbox Code Playgroud)
bry*_*mac 13
尝试将路线从最具体到最不具体.路线按顺序匹配.如果它'/'首先在路由上匹配,它将传递给routes.index,并且永远不会有机会路由到该/user/:id/photos功能.
所以,而不是:
app.get('/', routes.index);
....
app.get('/user/:id/photos', function(req,res){
Run Code Online (Sandbox Code Playgroud)
尝试:
app.get('/user/:id/photos', function(req,res){
....
app.get('/', routes.index);
Run Code Online (Sandbox Code Playgroud)
作为旁注,我认为/user/photos/:id似乎更好,但我/something/:id/somethingelse在我的应用程序中尝试过,它运行良好.
| 归档时间: |
|
| 查看次数: |
15866 次 |
| 最近记录: |