如何正确组织快速端点

How to organize express endpoints properly

我不知道如何有效地使用 /:variable 表示法。在我的设置中,我有这个布局。

router.route("/").get()
router.route("/:id").get().put().post().delete()
router.route("/auth").get().put().post()

当我调用/auth时,它没有去那里,而是触发了/:id下的方法。当我说 /auth 时,如何确保它不会转到 /:id 路径。

您需要调整路由定义的顺序。将 /auth 路线移动到 /:id 路线之前。

例如

import express, { Router } from 'express';

const app = express();
const port = 3000;

const router = Router();
router.route('/auth').get((req, res) => {
  res.send('auth');
});
router.route('/:id').get((req, res) => {
  res.send({ id: req.params.id });
});

app.use('/user', router);

app.listen(port, () => console.log(`HTTP server is listening on http://localhost:${port}`));

测试并输出:

 ⚡  curl http://localhost:3000/user/auth
auth%                                 
 ⚡  curl http://localhost:3000/user/123 
{"id":"123"}%