Express.js Route API不能提供全能路由

时间:2015-08-28 10:52:58

标签: javascript node.js express mean-stack

我是MEAN堆栈的初学者,使用express.js

构建了一个API
var User = mongoose.model('User');

router.get('/users', function(req, res, next) {
  User.find(function(err, users){
    if(err){ 
        return next(err); 
    }

    res.json(users);
  });
});

这是我在 index.js

中制作的路线
router.get('/', function(req, res, next) {
  res.render('index');
});

使用此路线时API工作正常,但当我将上述路线更改为“全能”路线时

router.get('*', function(req, res, next) {
  res.render('index');
});

API不起作用(我使用Postman),它返回index.ejs页面而不是json响应。有人可以解释为什么会发生这种情况我想使用catch-all路线并希望API也能正常工作。

1 个答案:

答案 0 :(得分:1)

代码中的第一个是什么?到/users或全能路线的路线? 您需要先定义更具体的路线,最后定义全能路线。

router.get('/users', function(req, res, next) {
  ...
});

router.get('*', function(req, res, next) {
  ...
});