定义后无法将可选参数传递给express

Posted

技术标签:

【中文标题】定义后无法将可选参数传递给express【英文标题】:Cannot pass optional parameter into express after defining it 【发布时间】:2015-10-16 04:06:11 【问题描述】:

我使用下面的param 函数定义了我的可选参数,但是当我尝试使用 Postman 传入可选参数时,我得到一个 Reference Error 'off' is not defined。我不知道如何在下面的第二个函数中使用我为参数传入的值,并且我假设我对它的错误使用是导致错误的原因。我正在尝试在第一个函数中定义我的参数。

router.param('off', function(req, res, next, off)
  req.offset = off;
  next();
);

我在这里使用可选参数定义我的路线

router.get('/messages/:offset',  function(request, res) 
    ctxioClient.accounts(ID).messages().get(limit: 100, offset: off,
    function ( err, response) 

    );
);

【问题讨论】:

【参考方案1】:

可选参数用?定义

router.get('/messages/:offset?',  function(request, res) 
  var offset = req.params.offset || 0;
  // make 0 if no offset is present
  ctxioClient.accounts(ID).messages().get(limit: 100, offset: offset,
  function ( err, response) 

  );
);

【讨论】:

以上是关于定义后无法将可选参数传递给express的主要内容,如果未能解决你的问题,请参考以下文章

将可选路径参数传递给 ant

是否有必要在将可选参数传递给另一个可选参数之前检查它?

将可选参数传递给 ASP.NET API 的 GET 方法

当我将可选参数传递给视图时,为啥我的 CSS 静态文件在 Django 中不起作用?

如何将可选参数传递给typescript中的回调函数

检查内部方法是不是传递了一些可选参数