如何正确组织快速端点
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"}%
我不知道如何有效地使用 /: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"}%