vb.Net и MySQL медленный поиск записей

Редактирование 2: Выпуск 1.15.2 модуля анализатора тела вводит режим raw mode , который возвращает тело в качестве буфера . По умолчанию он также автоматически обрабатывает дефляцию дефляции и gzip. Пример использования:

var bodyParser = require('body-parser');
app.use(bodyParser.raw(options));

app.get(path, function(req, res) {
  // req.body is a Buffer object
});

По умолчанию объект options имеет следующие параметры по умолчанию:

var options = {
  inflate: true,
  limit: '100kb',
  type: 'application/octet-stream'
};

Если вы хотите, чтобы ваш сырой парсер разбирал другие типы MIME, кроме application/octet-stream, вам нужно будет изменить его здесь. Он также поддерживает подстановочные знаки, такие как */* или */application.


Примечание: Следующий ответ для версий до Express 4, где промежуточное программное обеспечение все еще в комплекте с каркасом. Современным эквивалентом является модуль body-parser , который должен быть установлен отдельно.

Свойство rawBody в Express было когда-то доступно, но было удалено с версии 1.5.1. Чтобы получить необработанное тело запроса, перед использованием bodyParser вы должны установить промежуточное программное обеспечение. Вы также можете прочитать обсуждение GitHub об этом здесь .

app.use(function(req, res, next) {
  req.rawBody = '';
  req.setEncoding('utf8');

  req.on('data', function(chunk) { 
    req.rawBody += chunk;
  });

  req.on('end', function() {
    next();
  });
});
app.use(express.bodyParser());

Это промежуточное ПО будет считываться из фактического потока данных и хранить его в свойстве rawBody запроса , Затем вы можете получить доступ к необработанному телу следующим образом:

app.post('/', function(req, res) {
  // do something with req.rawBody
  // use req.body for the parsed body
});

Изменить: кажется, что этот метод и bodyParser отказываются сосуществовать, потому что один будет потреблять поток запросов перед другим, что приведет к тому, что второе никогда не стрелять end, тем самым никогда не вызывая next() и не вися на вашем приложении.

Самое простое решение, скорее всего, будет изменить источник bodyParser, который вы найдете на линии 57 анализатора JSON от Connect. Это будет измененная версия.

var buf = '';
req.setEncoding('utf8');
req.on('data', function(chunk){ buf += chunk });
req.on('end', function() {
  req.rawBody = buf;
  var first = buf.trim()[0];
  ...
});

Вы найдете файл в этом месте:

/node_modules/express/node_modules/connect/lib/middleware/json.js.

-1
задан ardie pagulayan 17 January 2019 в 02:14
поделиться

1 ответ

По вашему вопросу я узнал, что вы работаете с большим количеством данных. Мне не ясно, о какой проблеме конфигурации вашей системы вы упоминали. Я думаю, что ваша конфигурация в порядке. В этой ситуации

я думаю, вы можете подумать о следующих подходах.

1. Use sub process(Thread) or background worker to retrieve data from database with 
   your Main UI Thread.
2.Optimize database connection string by creating a single instance, which has been 
   opened and closed several time in your code.   
0
ответ дан Mir Jibon 17 January 2019 в 02:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: