gpt4 book ai didi

http - 使用 express.js 进行路由 - 无法获取错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:56:32 24 4
gpt4 key购买 nike

第一次使用 express.js,我一直在添加我的第一条路线。

我的路由在 app.js 中定义如下:

app.get('/user/:id/photos', function(req,res){
res.send('user' + req.params.id);
});

然而, curl 到 http://localhost:3000/user/1/photos 只会导致“无法获取”错误。

express 附带的索引文件似乎工作正常。

这是我的 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);

最佳答案

尝试将路由从最具体更改为最不具体。路由按顺序匹配。如果它首先在 '/' 路由上匹配,它将传递给 routes.index,并且永远不会有机会路由到 /user/:id/photos 函数。

所以,而不是:

app.get('/', routes.index);
....
app.get('/user/:id/photos', function(req,res){

尝试:

app.get('/user/:id/photos', function(req,res){
....
app.get('/', routes.index);

作为旁注,我认为 /user/photos/:id 似乎更好,但我在我的应用程序中尝试了 /something/:id/somethingelse,它工作正常。

关于http - 使用 express.js 进行路由 - 无法获取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9474951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com