【node.js】サーバサイドjavascript 5【Nashorn】

2023/07/27(木) 23:08:16.03ID:nxFTW9tq
nodejsでDBマネージャーとかログマネージャーとか、可能な限り同一インスタンスを維持したいインスタンスって一般的にどうしてますでしょうか。

class DbManager{
private constructor(){}
static instance = new DbManager();
}
staticクラスを使うなら上記の書き方でしょうが、一般的にstaticクラスは良くないとされています。
他の硬い言語ならDIを使うのですが、nodejsというか、javascriptだとDIライブラリはあまり使われていないように見える。

毎回クラスを作る時に引数で渡しまくるのも面倒ですし、なにか良い手順はありますでしょうか
2023/07/28(金) 01:56:41.01ID:HsfaqfZ/
常に引数で外部注入して生成するけど
引数にundefinedが来たら自動的にデフォルト注入を使って生成かな
2023/07/28(金) 03:31:39.50ID:H/mKlItN
>>788
ありがとうございます。
そうなると大半がデフォルトなんだから、もう毎回書かなくていいや〜 ってなってしまいそう…

とにかく、それでも引数でちゃんと渡す or デフォルトで自動生成する が常套手段みたいですね。
2023/07/28(金) 09:58:33.60ID:Za7BrkqV
ファイル(モジュール)のトップレベルで

export const instance = new Xxx();

で十分
Javaなんかと違ってこれでもモックできるから大げさなDIなんかJS/TSにはいらんやろ
2023/07/28(金) 10:36:22.85ID:HsfaqfZ/
singletonならそれでいいね
2023/07/28(金) 12:39:37.08ID:Zbfe02RK
>>787
> 同一インスタンスを維持したい

シングルトンの話だな
2023/08/18(金) 15:34:38.37ID:ccv6NoZV
やめてっ!そこはビンカンなの!
2023/10/13(金) 21:17:44.43ID:uv+WVTr3
おぉ(゚ロ゚屮)屮
795デフォルトの名無しさん
垢版 |
2024/06/07(金) 19:13:05.87ID:pMHNGLdE
Prismaが快適すぎて最近はこれ使いたいがためにnode使ってるまであるわ
たまにEloquentとか使うとやりたいことができなさすぎて発狂しそうになる
2024/07/22(月) 05:05:01.65ID:lDVL1NiC
わざわざランタイム側でsqlite内蔵する意味がわからん
暇なのか
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況