Express.js 路线 API 无法提供包罗万象的路线

Express.js Route API does not work on providing a catch-all route

我是 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 使用这条路线时效果很好,但是当我将上述路线更改为 "catch-all" 路线时

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

API 没有工作(我使用 Postman),它返回了 index.ejs 页面而不是 json 响应。有人可以解释为什么会这样我想使用包罗万象的路线并希望 API 也能正常工作。

您的代码中什么排在第一位?通往 /users 的路线还是包罗万象的路线? 您需要先定义更具体的路由,然后再定义包罗万象的路由。

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

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