快递JS Doesen't Work

时间:2017-11-12 22:08:49

标签: node.js express

我有一个关于Express.js的奇怪问题

我有这样的代码

app.get('/', function(req, res) {

  res.send('Homepage');

});

app.get('/developers', function(req, res) {

  res.send('Developers');

});

当我访问我的本地主机时,我看到主页文本,当我访问/ developers页面时,我看到开发人员文本,但是当我访问/ developers / developer页面时,我看不到结果。

app.get('/developers/developer', function(req, res) {

  res.send('Developer test');

});

为什么第一条和第二条路线有效?为什么第三条路线不起作用?

1 个答案:

答案 0 :(得分:1)

这是因为您输入的路线的顺序。 app.get首先匹配/开发人员,并仅对其进行回调。尝试在/ developers路由上面传递/开发者/开发者路由。它会起作用。

  

喜欢这个

app.get('/', function(req, res) {

  res.send('Homepage');

});
app.get('/developers/developer', function(req, res) {

  res.send('Developer test');

});
app.get('/developers', function(req, res) {

  res.send('Developers');

});

此外,您可以在/ developers route

中内联/ developers / developer
  

index.js

var developer = require('developer');

app.get('/', function(req, res) {

      res.send('Homepage');

});
app.use('/developers', developer());
  

developer.js

var router = express.Router();
var developer = function() {
    var api = router();
    api.get('/', function(req, res) {
        res.send('Developers');
    });
    api.get('/developer', function(req, res) {
        res.send('Developer test');
    });
};
module.exports = developer;