获取错误"request.all is not a function",并且request.param和request.params在AdonisJS中不再起作用



我想从路由中获取请求参数。更具体地说,在我的情况下,我希望将这些参数发送到绑定控制器中的函数。

从较旧的文档中,看起来曾经有用于request.param()request.params()的函数,但是我在较新的文档中找不到相同的功能。

尝试这些功能时,我得到类似的东西

request.params is not a function

请注意,我引用的"较新"文档是 4.0,而不是 4.1(这是我正在使用的(,但是当尝试像 4.1 文档中的request.all()这样的函数时,我会收到类似的"不是函数"错误。我不确定我是否犯了一些错误,或者这个文档是否过时了。

在用一些调试语句分解对象之后,即。Object.keys(request)后跟Object.keys(request.params),看起来有一个"params"成员,但它是一个对象/数组,而不是一个函数。它的值可以通过request.params.the_parameterrequest.params['the_parameter']访问。

从控制器访问请求参数的结果代码如下(我正在创建一个用户邀请系统(:

路线.js

// a "?" is inserted after the invite_code parameter to indicate that it is optional
Route.get('/invitation/:invite_code?', 'UserController.invitation').as('invitation')

我的控制器.js

class UserController {
async invitation({ view, request }) {
// Pass invite code to the view so it can be injected into a form
// (this way invite codes can be built into links, or inserted manually)
return view.render('account.invitation', { invite_code: request.params.invite_code })
}
}
class UserController {
async invitation({ view, request, params }) {
// Pass invite code to the view so it can be injected into a form
// (this way invite codes can be built into links, or inserted manually)
return view.render('account.invitation', { invite_code: params.invite_code })
}
}

最新更新