1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/daoio-titbit

09.03.2025 19:54
GitLife Service Account
  • bodyparser.js оптимизирует процесс парсинга, сокращает вызовы функций, хотя этот оптимизационный эффект практически незаметен, и почти нет различий в производительности.
  • titbit.js использует опцию maxFormLength для контроля максимальной длины в байтах одного поля формы при использовании multipart/form-data; значение по умолчанию равно 1000000.
Последнее сообщение коммита: add maxFormLength for multiart/form-data and optimize bodypaser
09.03.2025 19:54
GitLife Service Account

Учрежден了一批 комментариев и кода.

Примечание: В данном случае перевод может потребовать корректировки для обеспечения смысла операции. "清理了一些注释和代码" более точно будет звучать как "Удалил некоторые комментарии и код". Однако, если контекст позволяет понять, что действия были направлены на организацию или упорядочение кода и комментариев, то вариант "Учрежден了一批 комментариев и кода" также имеет право на существование в зависимости от культурной интерпретации слова "清理".

Для точности перевода лучше использовать:
"Удалил некоторые комментарии и код."

Примечание: В данном случае перевод может потребовать корректировки для обеспечения смысла операции. "清理了一些注释和代码" более точно будет звучать как "Удалил некоторые комментарии и код". Однако, если контекст позволяет понять, что действия были направлены на организацию или упорядочение кода и комментариев, то вариант "Учрежден了一批 комментариев и кода" также имеет право на существование в зависимости от культурной интерпретации слова "清理".

Для точности перевода лучше использовать:
"Удалил некоторые комментарии и код."

Последнее сообщение коммита: clean code and change SIGABRT to SIGTERM
09.03.2025 19:54
GitLife Service Account

Используйте unitTime для управления расписанием очистки записей IP-адресов.

Последнее сообщение коммита: config: peerTime => unitTime
09.03.2025 19:54
GitLife Service Account
  • movefile.js был перемещён в then-код.
  • context1.js получил пустую функцию sendHeader для поддержания согласованности с HTTP2.
Последнее сообщение коммита: --
09.03.2025 19:54
GitLife Service Account
  • http1.js оптимизировать структуру кода промежуточного программного обеспечения для обработки запросов.
  • http2.js оптимизировать структуру кода промежуточного программного обеспечения для обработки запросов.
Последнее сообщение коммита: update code structure in request middleware
09.03.2025 19:54
GitLife Service Account
  • strong.js обеспечивает принудительную обработку некоторых асинхронных ошибок, гарантируя более стабильное выполнение программы.
let app = new titbit({
    strong: true
})

app.run(1234)
Последнее сообщение коммита: add strong for handle error
09.03.2025 19:54
GitLife Service Account
  • http1.js Поле host в заголовках может отсутствовать; в этом случае оно будет установлено как host, слушаемый при запуске сервиса.
  • http2.js Поле :authority в заголовках может отсутствовать; в этом случае оно будет установлено как host, слушаемый при запуске сервиса.
Последнее сообщение коммита: if host is undefined: set to self.host
09.03.2025 19:54
GitLife Service Account
  • middleware1.js ctx.res.body равен null или пустой строке — данные не возвращаются.
  • middleware2.js ctx.res.body равен null или пустой строке — данные не возвращаются.
app.get('/null', async c => {
    c.res.body = null
})
Последнее сообщение коммита: end nothing when c.res.body is null or empty string
09.03.2025 19:53
GitLife Service Account
  • http2.js убрали установку тайм-аута сокета в secureConnection.
  • http2.js начали слушать unknowProtocol и закрывать неправильные соединения.
Последнее сообщение коммита: add unknowProtocol handle for socket error
09.03.2025 19:53
GitLife Service Account
  • http1.js параметр requestTimeout установлен в значение 35000 (35 seconds).
  • http1.js параметр headersTimeout имеет значение по умолчанию 3500.
  • http1.js параметр maxHeadersCount имеет значение по умолчанию 36.
  • titbit.js использует свойство app.server, чтобы сохранять экземпляр, созданный с помощью методов http.createServer и http.createSecureServer.
  • titbit.js при обнаружении активации протокола HTTP/2 по умолчанию устанавливает параметр maxConcurrentStreams равным 100.
  • titbit.js при обнаружении активации протокола HTTP/2 по умолчанию устанавливает параметр maxHeaderListSize равным 16368 байт.
const app = new titbit()

app.run(1234)

// Установка времени ожидания запроса в 50 секунд (50000 миллисекунд) для защиты от атак типа DDOS.
app.server.requestTimeout = 50000

09.03.2025 19:53
GitLife Service Account
  • titbit.js Улучшена структура кода функции демона.

  • monitor.js Проверяет, если sendInterval не равен null, то больше не устанавливает таймер.

09.03.2025 19:53
GitLife Service Account
  • Отправка логовых сообщений с отдельным свойством status позволяет удобнее проверять эти сообщения в пользовательских функциях обработки логов.
Последнее сообщение коммита: update log info
09.03.2025 19:53
GitLife Service Account

Обновление обработки ошибок при запросах для http1 и http2.

Обработку ошибок можно настроить, переопределив функцию requestError.


const app = new titbit()

app.httpServ.requestError = (err, handle, another) => {
    console.error(err)
    console.error(handle)
}

handle — это экземпляр текущего запроса; в случае с http1 он может быть либо IncomingMessage, либо ServerResponse, а в случае с http2 — stream.

Экземпляр handle всегда будет представлять объект, который вызвал событие error для данного запроса.

another в случае с http1 зависит от типа ошибки и может быть либо ServerResponse, либо IncomingMessage; другими словами, один из этих объектов представляет запрос, другой — ответ.

another в случае с http2 представляет заголовки.

Последнее сообщение коммита: update requestError's arguments
09.03.2025 19:53
GitLife Service Account
  • Улучшена устойчивость.
  • Улучшена производительность парсинга URL.
Последнее сообщение коммита: 增强稳定性。
09.03.2025 19:53
GitLife Service Account
  • bodyparser.js оптимизировать часть кода.
Последнее сообщение коммита: --
09.03.2025 19:53
GitLife Service Account
  • http1.js проверяет длину URL до установки глобального логирования.

  • в обработчике события clientError в http1.js добавлена проверка ошибочного кода.

  • в http1.js через конфигурацию определяется, следует ли добавлять real_ip в глобальное логгирование.

  • http2.js проверяет длину URL до установки глобального логирования.

  • в http2.js через конфигурацию определяется, следует ли добавлять real_ip в глобальное логгирование.

  • в titbit.js добавлено опциональное поле realIP для контроля записи real_ip в глобальном логгировании.

Последнее сообщение коммита: add options:realIP for globalLog
09.03.2025 19:53
GitLife Service Account
  • middleware2 завершает выполнение запроса, устанавливая ctx.res.headers = null.
  • http2 начинает выполнение запроса, ctx.res.headers = {}.

После введения пула кэширования контекста, возможно, что заголовки сообщений, установленные предыдущим запросом, будут распространяться на другие запросы из-за неправильной очистки кэша.

Эта проблема затрагивает только http2, использование протокола HTTP/1.1 не влияет на это.

Для предыдущих версий этой проблемы, если невозможно или не требуется обновление до новой версии, можно исправить её с помощью промежуточного слоя:

app.pre(async (c, next) => {
  c.res.headers = {}
  await next()
})
Последнее сообщение коммита: set ctx.res.headers = null
09.03.2025 19:53
GitLife Service Account
  • Помощники uuid и makeId используют одинаковый метод генерации случайных чисел.
  • Помощник makeId имеет более низкую вероятность конфликтов, даже при использовании 11 цифр, что позволяет гарантировать уникальность.

В тестах makeId было показано, что уже при 10 цифрах достигается достаточно низкая вероятность конфликтов; каждый цикл тестирования выполнялся 8 миллионов раз, в течение 10 тестов, где максимальное количество конфликтов для 10-значной строки составило 16, а для 11-значной — не было зафиксировано ни одного конфликта.

При распределенной системе рекомендуется использовать uuid вместо makeId.

Последнее сообщение коммита: upgrade uuid and makeId
09.03.2025 19:52
GitLife Service Account
  • Ассистент обновил функции aesEncrypt и aesDecrypt, упростив операцию до использования только Base64-кодирования.
  • Ассистент функции uuid возвращает два режима: стандартный 8-4-4-4-12 и сжатый 8-2-2-2-4, при передаче true в качестве последнего аргумента.
  • Ассистент добавил функцию makeId, которая возвращает случайную строку по умолчанию длиной 12 символов, поддерживающую передачу аргумента для управления длиной строки.
  • Ассистент функции sha1, md5, sha256, sha512 поддерживают установку последнего аргумента для выбора кодировки выходных данных, по умолчанию hex.

UUID в режиме short возвращает строку типа a623fa36-6f-5w-9n-6w56 и всё ещё гарантирует хорошую уникальность.

Функция makeId гарантирует хорошую уникальность при использовании значений 12 символов и более, рекомендуется избегать использования значений менее 12 символов для генерации уникальных ID.

Последнее сообщение коммита: v21.10.7
09.03.2025 19:52
GitLife Service Account
  • body-parser поддерживает парсинг нескольких одноимённых данных формы в массив. В предыдущих версиях парсинг осуществлялся только для файлов, создавая массив по имени загрузки, а одинаково названные данные формы приводили к их перезаписи.
Последнее сообщение коммита: --
1
https://api.gitlife.ru/oschina-mirror/daoio-titbit.git
git@api.gitlife.ru:oschina-mirror/daoio-titbit.git
oschina-mirror
daoio-titbit
daoio-titbit