节点js路由器404与params

时间:2016-03-12 08:39:10

标签: javascript node.js express

我想将参数传递给页面。但是有404.我的代码:
app.js

var routes = require('./routes/index');
var app = express();

路由/ index.js:

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

router.get('/profile/:id', function (req, res) {
   var id = req.params.id;
   console.log(id);
   res.render('profile', {id: id});
});

我尝试http://localhost:3000/profile?id=56e2c3c2cdde3f64302ac154,但错误:找不到

2 个答案:

答案 0 :(得分:4)

您的路线应如下:

 http://localhost:3000/profile/56e2c3c2cdde3f64302ac154

自动设置req.params.id

答案 1 :(得分:2)

Path param和Query param之间存在差异。您已定义的网址

/profile/:id

说到路由框架,我希望id为Path param,即资源路径的一部分。但是在您提出的网址请求中

 http://localhost:3000/profile?id=56e2c3c2cdde3f64302ac154

您正在将id作为查询参数发送。因此,路由框架不知道将id作为查询参数的url。因此它返回404表示“服务器无法找到所请求的内容”。

相关问题