以下是我的代码如下:
var express = require('express');
var app = express();
var router = express.Router();
app.route('/')
.get(function(req, res) {
res.send('Hello World!');
});
app.route('/user')
.get(function (req, res) {
res.send('Hello' + req.params.id);
});
var server = app.listen(8000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
http://localhost:8000/运行正常,但http://localhost:8000/user?id=D运行正常,会出现以下错误:无法GET / user?id = D.
我的代码中有什么问题?请帮忙。
感谢。
答案 0 :(得分:2)
此路线语法:
'/user/:id'
匹配以下网址:
http://localhost:8000/user/4095
如果你使用这样的网址:
http://localhost:8000/user?id=D
然后,您需要使用"/user"
路由,并按照here所述,从id
读取req.query.id
值的查询参数。
此外,您不需要app.route()
,因为它只是您在这里没有做的事情的额外复杂程度。我建议我已经测试并运行的这种简化:
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send('Hello World!');
});
app.get('/user', function (req, res) {
res.send('Hello: ' + req.query.id);
});
var server = app.listen(8000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});