Size: a a a

Node.js — русскоговорящее сообщество

2020 February 20

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Sergey
class UserService {
   constructor() {
   }

   async registerUser(name) {
       const client: PoolClient = await postgres.connect()

       const userId: number = await this.createUser(name, client)
       await this.logUser(userId, client)
       // еще какие-то вызовы с client

       return id
   }

   … остальные функции
}
client передавать в параметры конструктора
источник

S

Sergey in Node.js — русскоговорящее сообщество
class UserService {
   constructor() {
      this.client: PoolClient
   }

   async registerUser(name) {
       this.client = await postgres.connect()

       const userId: number = await this.createUser(name)
       await this.logUser(userId)
       // еще какие-то вызовы с client

       return id
   }

   … остальные функции
}
источник

¿

¿hope in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
они остаются только в репозитории
Это ясно, но если вопрос о каком то сложном запросе, который встречается всего один раз в коде?Выносить все равно в метод или оставлять его как он есть?
источник
2020 February 21

S

Sergey in Node.js — русскоговорящее сообщество
хочется чтобы клиент транзакции инициолизировался внутри сервиса, чтобы юзер сервиса ниче об этой транзакции и о базе не знал
источник

S

Sergey in Node.js — русскоговорящее сообщество
насколько это адекватная тема
источник

JD

Josh Dies 🎃 [tesla pumpking] in Node.js — русскоговорящее сообщество
Максим
Это bigInt
каеф, спасибо, прочел
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
¿hope
Это ясно, но если вопрос о каком то сложном запросе, который встречается всего один раз в коде?Выносить все равно в метод или оставлять его как он есть?
репозиторий — это не только CRUD-методы. так что всё в нем оставлять, включая сложное и редкое
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Sergey
class UserService {
   constructor() {
      this.client: PoolClient
   }

   async registerUser(name) {
       this.client = await postgres.connect()

       const userId: number = await this.createUser(name)
       await this.logUser(userId)
       // еще какие-то вызовы с client

       return id
   }

   … остальные функции
}
ну так у тебя здесь пул все равно создается каждый раз с нуля ведь
источник

S

Sergey in Node.js — русскоговорящее сообщество
ну это так и надо
источник

S

Sergey in Node.js — русскоговорящее сообщество
сервис внутри контроллера будет инициирован один раз на один запрос, каждый новый запрос уникален
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Sergey
сервис внутри контроллера будет инициирован один раз на один запрос, каждый новый запрос уникален
ну и норм тогда
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Sergey
сервис внутри контроллера будет инициирован один раз на один запрос, каждый новый запрос уникален
кстати а тесты есть?
источник

S

Sergey in Node.js — русскоговорящее сообщество
тестов нет и не будет наверное, DI не нужен следовательно
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Sergey
тестов нет и не будет наверное, DI не нужен следовательно
успешного рефакторинга! 😱😱😱😱
источник

S

Sergey in Node.js — русскоговорящее сообщество
Sergey
class UserService {
   constructor() {
      this.client: PoolClient
   }

   async registerUser(name) {
       this.client = await postgres.connect()

       const userId: number = await this.createUser(name)
       await this.logUser(userId)
       // еще какие-то вызовы с client

       return id
   }

   … остальные функции
}
все-таки это хреновый вариант, вдруг ниже будут функции, которым ваще транзакции не нужны. а тут получается, что сервис обязан выполнять все запросы в контексте одной транзакции :|
источник

¿

¿hope in Node.js — русскоговорящее сообщество
Тем же сейчас занимаюсь - был бек на экспресе: ни тестов, ничего, классы - это были простые обьекты в 500-800 строк (слитно написанные), полные зависимостей и прочего, и как вишенка на торте - всё на бабеле запускалось
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Sergey
все-таки это хреновый вариант, вдруг ниже будут функции, которым ваще транзакции не нужны. а тут получается, что сервис обязан выполнять все запросы в контексте одной транзакции :|
походу мы про какие-то разные транзакции говорим...
источник

S

Sergey in Node.js — русскоговорящее сообщество
я про begin, commit
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Sergey
я про begin, commit
так пусть другие методы вызываются без транзакций?
источник

М

Максим in Node.js — русскоговорящее сообщество
Хочу поделиться классным видео по архитектуре. Там про пхп, но всё же и к ноде применимо

https://youtu.be/yc8vRd-C0Y0
источник