Express Node JS

时间:2015-08-28 21:32:57

标签: node.js express

以下是我的代码如下:

    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.

我的代码中有什么问题?请帮忙。

感谢。

1 个答案:

答案 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);
});