@kirilljs эй, че сразу бить то…
parus-majour
Сообщения
-
JavaScript мемы -
Программисты раньше и сейчас -
Программисты c GPT и без -
Проблема с дублированием данных при вызове return вместо reply.send - FastifyПользователь @kirilljs написал в Проблема с дублированием данных при вызове return вместо reply.send - Fastify:
const userService = new UserService();
Лучше не создавать сервис каждый раз в функции, это лишние затраты
-
Проблема с дублированием данных при вызове return вместо reply.send - FastifyВо первых ты описал
createNewUser()
как асинхронную функцию, и она у тебя ничего не возвращает, а также ты нигде await не используешь, у тебя тогда и try не будет ничего ловитьПопробуй вместо
userRepository.save(user)
написать асинхронную функцию простую (например таймер), и сделай там console.log(), посмотри сколько сообщений выдаст, сделай такой дебаггинг -
pm2 автоматический restart при перезагрузки сервераПользователь @kirilljs написал в pm2 автоматический restart при перезагрузки сервера:
Далее нам необходимо запустить скрипт startup, который как раз отвечает за автоматический запуск pm2 после перезагрузки сервера:
Поправка: команда startup просто показывает команду, при исполнении которой сервис pm2 будет загружать автоматически сохраненные процессы
-
PageProps Type Errors in Next.js. Type '{ slug: string; }' is missing the following properties from type 'Promise<any>'После обновления Next js до 15 версии, в динамических маршрутах разработчики некоторые изменения, что приведет к ошибкам при сборке проекта.
пример:
Type error: Type 'Props' does not satisfy the constraint 'PageProps'. Types of property 'params' are incompatible. Type '{ slug: string; }' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag]
Разработчики сделали динамические параметры асинхронными, поэтому нужно будет поменять типы, и получать их мы должны, например, через
await
до 15 версии:
// СТАРЫЙ КОД type Props = { params: { slug: string; }; }; export async function generateMetadata({ params: { slug } }: Props) { const { category } = await fetchData(slug); ... } } export default async function Page({ params: { slug } }: Props) { const data = await fetchData(slug); ... }
после 15 версии:
// НОВЫЙ КОД type Props = { params: Promise<{ slug: string; }>; }; export async function generateMetadata(props: Props) { const { slug } = await props.params; const { category } = await fetchData(slug); ... } } export default async function Page(props: Props) { const { slug } = await props.params; const data = await fetchData(slug); ... }
-
Оптимизация React js приложений. Использование функции debounde()Пользователь @kirilljs написал в Оптимизация React js приложений. Использование функции debounde():
И почему onInput, а не onChange
onInput отлавливает все изменения значения в
<input />
, даже такие как нажатие клавиш и вставку текста, поэтому он предпочтительнее в данном случае -
Оптимизация React js приложений. Использование функции debounde()Пользователь @kirilljs написал в Оптимизация React js приложений. Использование функции debounde():
Простыми словами, мы колбэчим submitHandler через debounceHandler то как оно должно быть по спецификации JS
не понял вопроса, напомню, чтчо тут не используется никаких форм, фактически все обработчики привязаны к onInput событию, функция
debounce()
- самописная