170 похожих чатов

Прошу совета. Я не настоящий node.js девелопер, но тут напилил

бэкенд MVP на ноде+express, и он разросся слишком сильно, надо то ли с нуля переписать по-человечески, то ли капитально порефакторить.

Что у меня есть:
- обработчики всех запросов в index.js, 780 строк кода. Некоторые из них даже валидируются (joi). Логики тут никакой нет, только запросы к сервисам работы с БД (storage.js) и отправки писем (sender.js)

- sender.js - 400 строк кода, 7 методов, формирование писем и обращения к внешнему сервису отправки писем через API, а также работа с БД через stroage.js

- storage.js - самый жир. 1500 строк кода, 55 методов, часть из которых используется при обращениях извне, часть - только внутри класса. Использую mysql с обычными коллбеками (с вытекающим монструозным вложенным кодом). Есть простые операции, есть большие SQL запросы на 15-20 строк (большие селекты сложных данных).

Остальное там по мелочи - конфиги, кое-какие классы-утилиты

Основная проблема - полное отсутствие тестов. Мне бы добавить сюда прогон каких-то сценариев, т.е. скорее интеграционное тестирование, чем модульное. Начал сталкиваться с проблемой, что какой-то старый функционал может начать отваливаться при допиле нового.

Вопросы:
- стоит ли использовать какие-то ORM? если да, что как там жить с большими запросами?
- как это лучше тестировать?
- есть где-то примеры кода подобного плана API на node+express нормально организованного хотя бы, а в идеале - с тестами.

2 ответов

14 просмотров

orm - sequelize, unit testing примеры ищите на гитхабе, но все что я находил было не большим, или в начальном состоянии

jest + supertest

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта