【问题标题】:How to set default path (route prefix) in express?如何在快递中设置默认路径(路由前缀)?
【发布时间】:2021-01-24 10:44:25
【问题描述】:

代替path + '..' foreach 路由 - 我如何为每条路由添加前缀?

我的路线应该是

/api/v1/user

我不想做的事

var path = '/api/v1';
app.use(path + '/user', user);

我想做什么

 var app = express();
 app.setPath('/api/v1');
 app.use(..);

【问题讨论】:

  • 有人可以澄清这个问题的含义吗?这听起来类似于我正在寻找的东西,但我不太清楚这里真正要求的是什么......

标签: node.js express


【解决方案1】:

使用 Express 4 你可以使用Router

var router = express.Router();
router.use('/user', user);

app.use('/api/v1', router);

【讨论】:

  • 是否还有一种聪明的方法来处理所有带有前缀的重定向?
  • 我理解 router 选项,但很遗憾 express 没有像 app.setRootPath(myPath) 这样的东西,我想在我的底层代码中设置根路径,所以我只需要使用app 对象。
  • 使用get 让我觉得更清楚。例如router.get('/user', user);
【解决方案2】:

如果您使用 Express 4 Router,您可以使用 route() 方法设置路径并创建可链接的路由处理程序

app.route('/book')
  .get(function (req, res) {
    res.send('Get a random book')
  })
  .post(function (req, res) {
    res.send('Add a book')
  })
  .put(function (req, res) {
    res.send('Update the book')
  });

【讨论】:

  • 是的,这对于单个端点/路由是正确的,但是问题需要为所有路由都有一个前缀路径,以防有很多而不是只有一个。但这已经包含在接受的答案中。无论如何很高兴看到你的观点。
猜你喜欢
  • 2020-05-17
  • 2011-11-14
  • 2015-01-10
  • 2012-03-27
  • 2017-01-06
  • 2021-11-21
  • 2018-06-08
  • 1970-01-01
  • 2021-07-30
相关资源
最近更新 更多