javascript 使用connect-route在路由器中传递可选参数

qvtsj1bj  于 2023-05-16  发布在  Java
关注(0)|答案(1)|浏览(95)

我怎样才能使默认GET请求和可选参数路由的API行为不同?我正在使用connect-route进行路由。

var connectRoute = require('connect-route'),
  connect = require('connect'),
  app = connect();

app.use(connectRoute(function (router) {
  router.get('/', function (req, res, next) {
    defaultRequest();
  });

  router.get('/:param', function (req, res, next) {
    processParams();
  });}));

现在,当我执行默认请求“https://localhost/”时,它将同时调用'defaultRequest'和'processParam'方法,因为路由将同时匹配这两个方法。但我想把这两个电话分开处理就像

n8ghc7c1

n8ghc7c11#

你可以合并这两个路由并检查该参数是否存在,以有条件地执行一个操作:

var connectRoute = require('connect-route'),
  connect = require('connect'),
  app = connect();

app.use(connectRoute(function (router) {
  router.get('/:param', function (req, res, next) {
    if (req.params.param) {
      processParams();
    } else {
      defaultRequest();
    }
  });
}));

相关问题