Изменить лимит HTTP-запросов в Sailsjs


В запросе появляется ошибка 413 Request Entity Too Large, потому что я отправляю несколько URI-изображений в кодировке base64, а это много символов.

Во всяком случае, я не могу найти способ расширить этот лимит в SailJS. Судя по всему, Sails использует Skipper для bodyParser, но я ничего не могу найти в документации по шкиперу.

Я думаю, это в файле конфигурации http...

Если кто-то может сказать мне, как :) Спасибо!


person Najie    schedule 12.01.2015    source источник


Ответы (2)


Насколько я знаю, это настраивается при создании контроллера, который обрабатывает загрузку, например:

req.file('avatar').upload({
    maxBytes : 2000000 // integer
  }, function (err, uploadedFiles) {
  if (err) return res.send(500, err);
  return res.json({
    message: uploadedFiles.length + ' file(s) uploaded successfully!',
    files: uploadedFiles
  });
});

Но они сказали, что в настоящее время это все еще экспериментально. Посмотрите на эти Документы Шкипера.

person Andi N. Dirgantara    schedule 12.01.2015
comment
Проблема в том, что я не отправляю файл, это слишком длинные параметры моего http-запроса, я не могу использовать req.file() в моем случае. Может я неправильно делаю... - person Najie; 12.01.2015
comment
Можете ли вы предоставить свой код и имя файла, который вы хотите загрузить? Или, может быть, какое-то демо? - person Andi N. Dirgantara; 13.01.2015

Это решение сработало для нас https://github.com/balderdashy/sails/issues/2653

Sails использует skipper для парсера тела. Вы можете настроить или изменить конфигурацию шкипера по умолчанию, создав промежуточное ПО в config/http.js:

configuredSkipperBodyParser: function () {
        var opts = {limit:'50mb'};
        var fn;

        // Default to built-in bodyParser:
        fn = require('skipper');
        return fn(opts);
    }

Затем установите его вместо парсера тела по умолчанию:

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

Надеюсь, это полезно.

person Misha N.    schedule 11.03.2016