在 Sails.JS 中持久化之前添加缺少的请求参数

2024-01-06

是否可以“插入”丢失的参数(如果未发送),以便通过以下方式将它们全部保留req.params.all()?

目前正在尝试这样做,让我no method 'setParameter' error.


万一有人需要这个。

我只需要处理一个类似的问题,在流程到达控制器之前,我必须将 URL 的某些部分从多种语言翻译为英语。

首先,我使用的是 Sails v0.10.5,我不知道这要追溯到多久以前。

在此版本中,添加中间件的推荐方法是使用policy or the http配置。 起初,我尝试创建策略,但 Sails 不允许您更改策略内的参数。因此我诉诸于http。此配置提供了为 http 请求添加您自己的中间件的可能性。

在那里你会发现middleware:属性,您可以添加自己的函数,然后将其插入到order array:

order: [
        'startRequestTimer',
        'cookieParser',
        'session',
        'myRequestLogger',
        'bodyParser',
        'handleBodyParserError',
        'compress',
        'methodOverride',
        'poweredBy',
        '$custom',
        '__your_function',
        'router',
        'www',
        'favicon',
        '404',
        '500'
    ]

所以我添加了自己的函数来订阅router:route事件,以便 params 数组已填充。

addRouterListener: function (req, res, next) {
    sails.on('router:route', function (args) {

        // Proceed to changing your params here
        // It would also be wise to check the route or the controller
        if (args.options.controller === 'x' && args.req.params['type']){
            args.req.params['type'] = translation[args.req.params['type']];
        }

    });

    return next();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Sails.JS 中持久化之前添加缺少的请求参数 的相关文章

随机推荐