ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 420
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
-530 kunlar
Postlar arxiv
1 420
ืฉืืืฉ ืชืื ืืช ืืืจื ืืืฆืืืช ืขืืืื ืืืืืืง
ืงืืื ืื ืืืืื ื ืืืช, ืืชืืจ ืคืจืืืื ืกืจ ื 12 ืฉื ืื ืืืืจืื ืืช ืขืืจ ืืจืื ืืื ืืื ืืคืขื ืืืืจืื ื ืฉืืืคืฉืชื ืขืืืื. ืื ื ืืืื ืืืืจ ืืช ืืขืืื ืืื ืืืชืจ ืืจื ืืืจืื ืื ืื ืืกืืื ืืช ืฉืื ืืขืืืจ ืืืงืืืืช ืืืืืก.
ืืืื ืืืช ืื ืงืืืช ืืืื ืืงืฆืช ืืจืืืงืช ืฉืื ืืฉ ืฉืืืฉื ืขืงืจืื ืืช ืืื ืืืจืกืืืื ืฉืื ื ืจืืื ืืื ืชืืืื ืฉื ืืืคืืฉ ืื ืืืืก. ืขืงืจืื ืืช ืฉืืฉืืชื ืืืื ืื ืืืชื ืืชืืื ื ืฉื ืืืคืืฉ ืขืืืื ื ืจืืืช ืืจืื ืคืืืช ืืืืืฆื.
ืื ืืืช ืชืฉืชืืช
ืืขืืงืจืื ืืจืืฉืื ืืื ืื ืืืช ืืชืฉืชืืช. ืชืฉืชืืช ืืืืื ืฉื ืืืคืืฉ ืขืืืื ืืืจืืืช ืืืืืจืืช ืขื ืื ืฉืื ืจืืืื ืืื ืืชืืื, ืฉืืคืืจ ืืจืื ืืืงืฆืืขืืช ืฉืืื, ืื ืืืช ืชืืง ืขืืืืืช ืฉืืจืื ืขื ืืืืืช ืืงืฆืืขืืช ืืื ืืืช ืืืืื ืืืืช ืจืืืช ืฉืืืคืฉืจื ืืื ืืืฉืชืื ืืืจืืื.
ืืคืจืืื ืืื ืื ืคืืืช ืืฉืืืื ืืงื ืืืฆืื ืืืื ืืืคืื ืืจืฉืช ืืื. ืืืืื ืืฉืืื ืืืืืจ ืื ืฉืื ืืืื ืืฉืืื ืงืืจืืช ืืืื ืืืืจืืช ืืฉืื ืืืฆืืฆื ืืืืืืกืืช ืฉื ืืื ืืืืื ืื ืืืื ืืฉืคืจ (ืืื ืืืชืืืื ืขื ืืืชื ืื ืฉืื ืืืืจืืช ืืืฉืื), ืืืฉืชืชืฃ ืืืืจืืขืื ืืงืฆืืขืืื ืฉื ืืชืขืฉืืื, ืืืืช ืืืืงืชืื ืื, ืืืืื ืก ืืงืืืืืช ืืจืฉืช ืืืืฉืชืชืฃ ืืืืื ืื ืฉื. ืื ืืืจ ืฉืขืืืจ ืืื ืืืืืจ ืื ืฉืื ืืขื ืืื ืื ืืืชืขืฉืืื ืืืื ืืืืืจ ืืชืื.
ืืฉืืื ืืืฉืชืคืจ ืืงืฆืืขืืช ืืฉืื ืื ืืืื ืืืืื. ืืฉ ืืืื ืืืื ืงืืจืกืื ืืจืฉืช, ืืจืฆืืืช ืืงืฆืืขืืืช ืืื ืื ืก ืืขืืื ืืืื ืืช ืืืืืืื, ืืืชืจ ืกืคืจืื ืืื ืฉืืคืฉืจ ืืงืจืื ืืืืื ืฉืืืื. ืขืฉื ืืขืฆืืื ืืจืื ืื ืืื ืืืืื ืืฉืื ืืืฉ ืื ืืฉ ืืืืช ืืืื ืืืื ืืืจืื ืฉืชืฆืืจืื ืืืืื.
ืืชืืฉืื ืชืชืืืื ืืืืชืงื ืืืืืื ืืืืช ืืขืืืื ืืื ืชืจืฆื ืืืจืืืช ืฉืืฉ ืืื ืืช ืืืืืืช ืืืฆืข ืืช ืื ืฉืฆืจืื. ืคืจืืืงืืื ืืืืื ืืชืืง ืขืืืืืช ืื ืืื ืื ืืืื ืืื ืืขืืืฃ ืืืชืืื ืืขืืื ืขืืืื ืืื ืฉืืืชืจ ืืืงืื.
ืืืชืืจืื ืืฉืื ืืื ืื ืฉืื ืื ื ืื ืืืืขืื ืืื ืืื ืืื ืืืงื ืืืื ืื ื ืืจื ืืงืื ืคืืืืง ืืืืชื ืฉืืฉืงืฃ ืื ื ืืื ืืื ืื ืื ื ืืชืงืืืื. ืืื ืืื ืืชืืืื ืืืืืข ืืืืื ืืืืช. ืขื ืฉืื ืืงืจื ืืืืจ ืืืืื ืฉืืคืฉืจ ืืฆืจืื ืืขืฉืืช ืืื ืืืืฉืื ืืขืืื.
ื ืืฆืื ืืืืื ืืืืช
ืืฉืืชืืืื ืืืืืข ืืืืื ืืืืช ืืฉืื ืืฉืื ืื ืืืืื, ืื ืืคืกืคืก ืืืืืืช ืืืื ืืจืืจืื ืืืื ืืืืื ืืช ืฉืืื ืืืืืืืืช ืฉืืื. ืคืชืืื ืืืฉืื ืืฆืืฆื ืืจืืฆื ืืืืืื ืืืชื ืืจืืืื ืืืฉืจืช ืคืืชืื Full Stack. ืื ืฉืืฉืืืข ืืื ืืืืคืื ืคืชืืื ืื ืืคืกืืง ืืฆืืฆื ืืืืื ืจืืฆืื ืฉืชืืืื ืืขืืื ืืฆืื ืขื ืคืจืืืงืืื ืฉื ืืืืขืืช ืืืจืืืืืืื. ืื ืืืื ืืืืืช ืื ืืืจ.
ืืฉืื ืืืืื ืืืื ืืืงืื ืื ืืืืืง ืืชื ืืืคืฉืื ืืื ืืืืืช ืขืจื ืืื ืืืืืื ืืืืช ืื ืืื ืืช ืืื ืืืืช ืฉืืื ืืืจื ืืืจืื ืื ืจืืืื ืืื. ืื ืฉืื ืฉืื ืฆืืื ืืืืื ืืืืช ืื ืืชืืืืื. ืืฉืืืืข ืคืจืืืงื ืจืืืื ืื ืขืฉืืชื ืืืจ ืืกืคืืง ืฉืืขืืจื ืืืช ืืื ืืืขืช ืฉืื ืคืจืืืงื ืืื ืืืืงืืื ืืืชื ืืื ืืืกืก.
ืืืชืืจ ืืฉืื ืืืืืื ืืืืช ืืื ืฉืื ืฉืื ืฉืืืืื ืฉืืืืื ืืืืช ืืืืช ืืชืงืืคืืช. ืฉืืืข ืืืืคืื ืื ืืคืกืืง ืืฆืืฆื ืืื ืืืืฉืืื ืืื ืฉืื ืืฆืขื. ืื ืชืชื ื ืืขืืืฃ ืืืืืื ืืืืช ืืืืื ืืชืื.
ืืชืคืฉืจืืช
ืืฆืืชื ืืช ืืืืืื ืืช ืืคืจืืืงื ืืื? ืจืื ืืกืืืืืื ืฉืืื ืื ืืืื ืืืฉืื. ืืืจืืง, ืืืฉืืืจืช, ืืืื ืืืืืื, ืืื ืฉืื, ืืฉืขืืช, ืืืืคืฆืืืช, ... ืืืืง ืืืืจืื ืืืจืืฉ ืืฉืืื ืืืฆืื ืขืืืื ืืื ืื ืืื ืืช ืืืชืคืฉืจ ืขื ืืืืจืื ืืคืืืช ืืฉืืืื ืืฉืืื ืืงืื ืืช ืืืืืื ืืช ืฉืืืืืชื ืื.
ืฉืืื ืื ืืชืื ืืช ืืืื ืืืืคืืฉ ืืขืืืื ืืื ืฉืืื ืืชื ื ืืขืฆืืื ืืื, ืืื ื ืืืื ืฉืืชืืืื ืืืื ืคืืืช ืืืืืฅ ืืืืชืจ ืคืจืืืืงืืืื.
1 420
ืืื ื ืื ืืื
ืืื ืื ืชืืื ื ืฉืืืชื ืืืชื ื ืืจืื ืืื, ืื node.js ืืืฉื ืืืชื ืืจืื ืงืื ืืฉื ืืคืืฆ'ืจืื ืฉืืฃ ืืื ืืืจ ืื ืืืืข ืฉืงืืืืื. ืืืืจืื ืืืื ืืืืื ืืช ืืคืืชืื ืืื ืืช ืืืื ืืจืืฆื ืืื ืื ืกืื ืฉืืืฉืืื node ืืื ืืืืืื ืืืืืช ืืืืจืื ืืืชืจ.
ื ืืกืฃ ืขื ืื ื ืื ืืืืื ืขื ืืื ืืื ื ืืืจืืืืงืืืจื ืฉืื ืฉืื ืืืจ ืืชืจืืื ืืืืื ืื ืืืขืื ืขืืืง ืืชืื ืืืงืืกืืกืื ืฉื ืืคืจืืืงื. ืืืจืื ืืื ื ืืืื ืชืืืืืช ืืจื package.json, ืืืืจืกื ืฉืืื ื Buffer-ืื ืืืืืจืกื ืฉืืื ื Stream ืืืืืื CommonJS ืืขืื ืืืื ืคืืชืืืื ืฉืขืืจื ืกืื ืืจืืืืฆืื ืืืจื ืฉื ืื ืกื ื Node.
ืืื ืืืฉืืืืืช ืฉืืฆืืชื ืืื ืฉืืืฉืช ืืืืื ืืื ืืื ืืืืืจ ืืืืชืจ, ืขื ืืขื ืืืืืช ืืื ืฉืืืชืจ ืชืืื ื node. ืืืืจืกื 1.1 ืฉืืฆืื ืขืืฉืื ืื ืืกืคืจืื ืืืชืืืืืช ืขื ื APIs ืืื ืืชืืขืืื ืฉื node ืฉืื ืืฉืืคืืื.
ืืื ื ืืืืข ืขื ืืืื ืืจืฉืืืช ืืืืืื By Default, ืชืืืื ืืืชื ืืกืืืืช ืืกืื ืืจืืื ืฉื JavaScript ื TypeScript. ืื ืืื ืืื ืืืฆืืจ ืขืืื ืืื ืืกืื ืืจืื ืฉืืืื ืงื ืืืขืืืจ ืื ืงืื ืืื ืืฉืจืช ืืืคืืคื ืื.
ืืื ืื ืืืื?
ืงืฉื ืื ืืืืืื ืขืชืื ืื node.js ืืืฉืื ืืืืืื. ืื ืืื ืืขืืื ื ืืื ืืืจ ืืืื ืื ืฉืื ืืชืืืื ืืืืืืฃ ืืช ื node ืฉืืื ื bun ืืื ืืืจืืืฉ ืืืืื. ืืืืืืง ืืื ืฉืืฃ ืืื ืื ืืชืืขืืข ืืืืืคืืง ืื ืื ื ืจืื ืืขืืืขืื ื node. ืืืืจ ืืืืฉ ืืขืืื ืืืืืง ืืืชื ืืืจ ืจืง ืืืจ ืืืชืจ.
ืืขืืืื ืื ื ืืงืืื ืืจืืืช ืืช ืืื ื ืืืงื ืืช ืืืืืื. ืืฉ ืืื ืงืืืื ืืคืจืื ืช ืืืืชืื ืืื ืืืืื ื ืืืืชืืช ืืืฆืืจ ืืฉืื ืืื ืืืชืจ. ืื ืื ืืงืจื ืื ืื ืืืื Drop In Replacement ืืื ืืืืจื ืืืฉื ืฉื ืฆืืจื ืืขืฉืืช. ืื ื ืืฉืื ืืืชืขืืจืจ ืืื ืืื ืืืืืืช ืฉืืื ืฉืื ืืืืชื ืฆืจืื ืืืชืจ ืืช jQuery ืื ื ืื ืื ืืฆืืจื ืืช ืื ื require, ื Buffer ืื APIs ืืื ืืชืืขืืื.
1 420
ืืื ืื ื ืื ืืฉืชืืฉ ื xz
ืืื ืืขืืืช ืฉื ืืขืืื ืืขืงืืืช ืื ืืกืืื ืืืืจืื ืืฉืชืื ืืืช ืืืืจืืช ืืชืืื ื ืฉืืืื ืืฉืชืืฉืื ืื-
ืงืื ืคืชืื ืื ืจืขืืื ืืขืืื. ืืืื ืืฉืชืืฉืื ืืืืชื ืืืฆืจืื ืืืืืชื ืชืฉืชืืืช ืืื ืืืฃ ืื ืืชื ืืงืื ืืืืฉื ืืช ืืื ืืืืืืช. ืงืื ืคืชืื ืืืฉ ืืกืจ ืื ืืขืืื ืฉื ื Generative AI ืืื ื ืื ืจืืฆื ืืืืืื ืืื ืืืืื ืืื ื ืจืืื ืื ืืื ืืืฆืจ ืืืื ื ืฆืจืืืื ืืฉืื ืชืืืืืื ืืืืืช ืื ืืืคื ืืืจืืช. ืืื ืงืื ืคืชืื ืื ืื ืืขืื, ืื ืคืืจืฆื ืงืืจืืช ืืื ื ืืื ืืชืื ืชื ืงืื ืคืชืื ืืจืืืืืื ืืขื ืืื ืืืืจืืื ืขื ืืืชืจ ืืื. ืืกืืฃ ืื ืฉืื ืืืืื ืืฆืืืืื ืืงืื ืืช ืืืื ืืงืืืื ืืืคืืื ืฆืืื ืื ืืง ืืื ืขืฆืื.
ืฉืจืฉืจืช ืืกืคืงื ืืืช ืืขืื ืืืืชืืช. ืืืฆืจ ื ืืฉืชืืฉ ืืืืฆืจ ื ืฉืืฉืชืืฉ ืืืืฆืจ ื ืฉืืฉืชืืฉ ืืืืฆืจ ื ืืื ืืืื ืขืฉืจืืช ืืืืืช ืจืืืช. ืืกืคืืง ืฉืืืฉืื ืืฆืืื ืืฉืื ืข ืืช ืืื ืืืชืื ืชืื ืฉืืืจืืืื ืขื ืืืฆืจ ืฉื ืืฆื ืืืฉ ืืืื ืืฉืจืฉืจืช ืืชืช ืื ืืืื ืืื ืืฉืชืื ืงืื ืืืื ื ืืืืชื ืืืฆืจ, ืฉืจืฉืจืช ืืืืื ืขืืืืช ืืจืขืชื ื ืืืงืื ืืืืื ื ืืืืข ืืืืฆืจืื ืฉืื ืื ื ืื ืืืืจืื ืืืืืืื ืืืคืืื ืืืขืจืืช ืืืคืขืื.
ืืื ืื ืืืืืจ ืื ืืจืก ืคืจืืื ื, ืืืชืื ืช ืฉืืืืจื ืื ืงืฉืืจ ืืกืืคืืจ ืืื ืืืงืจื ืืืื ืืช ืืงืื ืืืืื ื, ืืช ืื ืกืืืืช ืืืืืื ืืืืช ืืืืืจืืช. ืืืกืชืืืืช ืงืืืื ืืฉ ืกืืื ืืืืื. ืื ืื ืืืืฆืข ืืื ื ืืฉื ืืื ืื ืืื ืืจืืฉืื ืืื ืืืื ืืืืจืื.
ื ืจืืืช ืืืื ืืกืืืื ืืืืื ืฉืื ื ืืฆืืช ืืื ืืงืฆืช ืืฉืคืจ ืืช ืืืืืื ืฉื ืืขืืื. ืคืจืืืงื xz ืืื ืคืจืืืงื ืืงืื ืคืชืื ืืื ืื ืืืช ืืืื ืืจืื ืืืคืฆื ื ืขืฉืชื ืขื ืืืืื ื ืฉื ืืืคืชื ืืืืื ื. ืืืช ืืืืืืืช ืฉื ืงืื ืคืชืื ืืื ืฉืืืชืจ ืขืื ืืื ืืืืืืช ืืจืืืช ืืืชืจ ืืืืื. ืืกืืคืืจ ืฉื xz ืืืฉืื ืืืข ืืช ืื ืืขืื ืงืฉื ืืฉืืื ืืืกืชืืจ ืืช ืืคืจืืฆื.
1 420
ืงืืฆืื ืกืืืืื ืืืงืกืคืจืก ืขื Deno Deploy
ืื ืชืืืชื ืืืืคื ืืืืขื ืื ืืคืืกืืื ืขื node ื deno ืืืืื ืืืืจืื ืื ืื ืชืฉืืื ืืฉืืืข ืฉืื ื ืขืืื ืขืืฉืื ืขื ืจืขื ืื ืงืืจืก Node ืฉืืืชืจ ืืืงืืื ืฉืขื ืคืกื ืืชื ืชืงืืื ืงืืจืก ืืขืืืื ืขื Node ืฉืืืจ ืืืื ืืื ืกืืฃ ืืืืืืืช ืงืื ื TypeScript ืืชืืื ืื ื Node ืืื ื Deno. ืจืื ืืืื ืื ืื ื ืืจื ืืกืืื ืืื ืืื ืงืฆืช ืืขืืืช ืชืืืืืช ืืืืื ืื ืืื ืืขื ืืื ืื. ืืคืืกื ืืืื ืื ื ืจืืฆื ืืืืจ ืขื ืืขืืืช ืชืืืืืช ืงืื ื ืืืืช ืืฉืืจืืช Deno Deploy.
ืืื ืฉืื ืืืืจืื Deno Deploy ืื ืฉืืจืืช ืืืืกืื ืืื ืื ืฉื Deno ืืืื ืืคืฉืจ ืืืขืืืช ืื ืืืฉืื ืฆื ืฉืจืช ืืื ืคืฉืื ืืจืืฆืื ืืืชื ืขื ืืฉืจืชืื ืฉืืื. ืืฉ ืืื ืืกืืืืื ืืชืฉืืื ืืื ืฉืื ืฉืฆืจืืืื ืืืื ืืฉืืืื, ืืื ืืืฉืืงืื ืืืกืืื ืืืื ืื ืืืฉ ืืขืืื.
ืืืื ืชื ืชืืงืืืช ืคืจืืืงื Deno ืืคืฉืจ ืืืชืื ืืฉืืจืช ืืคืงืืื:
$ deployctl deploy
ืืืคืจืืืงื ืขืืื ืืืืืืจ.
ืืืืืื ืื ืืคืจืืืงื ืืืืืกื ืขื ืืืืืื ืืคืฉืจ ืืจื ืืชืคืจืืืื ืืืขืจืืช ืืืืจ ืืช ืืื ื ืืืคืืื ืืืืืืื ืฉืืื ืืื ืื Push ืืืืฆืจ ืืืจืกื ืืืฉื ืฉื ืืคืจืืืงื ืขื ืืฉืจืช.
ืืืชืืจ ืืืืื ืืื ืืขืืืช ืชืืืืืช, ืื ืืืื ื ืืฉ Web Frameworks ืฉืืื ืืืงืกืคืจืก ืื ืจืื ืื ืืงืื ืฉื ืขืืืคืืช. ืคืืฆ'ืจ ืงืื ืืื ืืฉืื ืฉื ืงืืฆืื ืกืืืืื ืืจืฉ ืงืฆืช ืืืชืจ ืขืืืื ืืื ืฉืืื ืฆืจืื. ืืืื ื ืจืื ืืื.
ืืช ืงืื ืืคืจืืืงื ืืชื ืืืืืื ืืืฆืื ืืืืืืื ืฉืื ืืงืืฉืืจ:
https://github.com/ynonp/deno-deploy-files
ืืื ืืฆืื ืจืง ืืช ืขืืงืจื ืืืืจืื.
ืืฆื ืคืืชืื ืขื ืืืืื ื ืฉืื
ืืืฆื ืคืืชืื ืขื ืืืืื ื ืฉืื ืืืฉืช ืงืืฆืื ืกืืืืื ืขืืืืช ืืฆืืจื ืืืื ืืช ืืืงืกืคืจืก. ืื ืืงืื:
import express, {Request, Response, NextFunction} from 'express';
import process from 'node:process';
import root from './routes/root.ts';
import path from 'node:path';
import url from 'node:url';
import createError from 'http-errors';
const PORT = process.env.PORT || 3000;
const app = express();
const dirname = path.dirname(url.fileURLToPath(import.meta.url));
app.set('view engine', 'ejs');
app.set('views', path.join(dirname, '/views'));
app.use('/', root);
app.use(express.static('./public'));
app.use((req: Request, res: Response, next: NextFunction) => {
next(createError(404, 'Not Found'));
})
app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
console.error(err);
res.status(500).send({ errors: [{ message: "Something went wrong" }] });
});
app.listen(PORT, () => {
console.log(\Server listening on port ${PORT}\);
});
ืืืฉืจ ืืฉืืจื ืืจืืืื ืืืช ืืื:
app.use(express.static('./public'));
ืื ืงืืจื ืืฉืืืืคืื ื Deno Deploy
ืืืจื ืืขืืื ื Deno Deploy ืืชืืื ืืช ืขืืืืช ืืื ืืงืืืฅ ืืกืืื (ืืืืืื ืฉืื ืื ืงืืืฅ CSS) ืื ื ืืขื. ืืืืงื ืืืื ืืจืื ืืช ืืฉืืืื ืืืื:
TypeError: Cannot read properties of null (reading 'toUTCString')
at SendStream.setHeader (file:///node_modules/.deno/send@0.18.0/node_modules/send/index.js:874:31)
at SendStream.send (file:///node_modules/.deno/send@0.18.0/node_modules/send/index.js:620:8)
at onstat (file:///node_modules/.deno/send@0.18.0/node_modules/send/index.js:725:10)
at Deno.stat.then.denoErrorToNodeError.syscall (ext:deno_node/_fs/_fs_stat.ts:85:32)
at eventLoopTick (ext:core/01_core.js:153:7)
ืคื ืืืจ ืืชืืืชื ืืคืื. ืื ื ืจืื ืฉ stat ืฉื ืืื ื ืื ืขืืื ืืืืืง ืืื stat ืฉื node.js ืืืื ืืฉืื ื ืฉืืจ ืืฉืืืืจ ืืงืืืฅ.
ืืืงืื ืืจืื ืืืชื ืืืืชื ืืืชืื ืืืืืืืจ ืืฉืื ืฉืืฉืื ืืช ืืงืืืฅ ืืื stat. ืืื ื ืจืื ืืื:
app.use(async (req: Request, res: Response, next: NextFunction) => {
try {
const userInput = path.join('./public', req.path);
const safeInput = path.normalize(userInput).replace(/^(\.\.(\/|\\|$))+/, '');
const mime = contentType(path.extname(safeInput))
console.log(\File: ${safeInput}. content type = ${mime}\);
const content = await Deno.readFile(safeInput);
res.set('Content-Type', mime);
res.send(buffer.Buffer.from(content));
} catch (err) {
console.log(\file not found ${req.path}\);
next();
}
});
ืืืช ืืชืืฆืื ืืคืฉืจ ืืจืืืช ืืื ืืืื ืขื Deno Deploy ืขื ื CSS ืืงืืฉืืจ:
https://ynonp-deno-deploy-files-yfge7qm6f97y.deno.dev/1 420
ืืืขืชืงืช ืงืืฆืื ืื ื ืืขืืืฃ ืืืืชืจ ืขื ื Text Decoding ืื ืืฆืืจื ืืืืช ืื ื ืืขืชืืง ืืช ืืืืืื ืืื ืฉืื ืืงืืืฅ ืืืงืืจ ืืื ืงืฉืจ ืื ืื ืืืืฆืืื ืืงืกื ืื ืื ืื ืื ืืงืืืื ืฉืืื.
ืืืืืข ื ืืกืฃ ืขื Streams ืืื ืื ืฉืืคืฉืจ ืืขืฉืืช ืืืชื ื Node.JS ืฉืืื ืืืขืืฃ ืืื ืืชืืขืื:
https://nodejs.org/api/webstreams.html
ืื ืืืืืืืืช ืืคืืกื ืืื ื ืืืงื ืืขืืืืืช ื Node ืืืจืกื 21.7 ืืืจื ืฉืฉืืจืชื ืืช ืืงืื ืืงืืืฅ ืืฉื
a.mjs.1 420
ืงืจืืื ืืืชืืื ืืงืืฆืื ืขื Streams ื Node.JS
ืขืืืื ืขื ืืืืข ืืื ืืจื ืืจื Streams ืืื ืืืง ืืืชืงื ืฉื JavaScript ืื ืชืืืช ืืฆืืจื ืืืื ืื ื Node ืืื ื Deno, ืืืื ืืืฉืืช ืืืืืช ืื ืชืืื ืืืฃ ืฉืืืจืื ืขืืืืื ืืื ืืงืื. ืืืื ื ืืืจ ืขื ืืงืื.
ืงืฆืช ืชืืืืจืื
ืืจืื ืืืกืืกืืช Streams ืืืื ืืฉื ื ืืขืืื ืืฉ ืืช ื ReadableStream ืฉืืืชื ืื ืื ื ืงืืจืืื ืืืืข ืืืช ื WritableStream ืฉืืืชื ืืืชืืื ืืืืข. ื node.js ืืืืืื
stream ืืืืข ืืืคืื Streams ืฉื Node ื Streams ืฉื Web API.
ืืืืจืื ืืืืืื ืฉืืคืฉืจ ืืขืฉืืช ืขื Streams ืื:
1. ืืคืฉืจ ืืืืจ ืืืชื ืืื ืืฉื ื. ืื ืืืืจืื Stream ืืงืจืืื ื Stream ืฉื ืืชืืื ืื ืืงืืืื ืืขืชืงื.
2. ืืคืฉืจ ืืืืกืืฃ ืืจื ืกืคืืจืืฆืืืช ืขื Stream ืืืื ืืงืื Stream ืืืฉ. ืืืืืื ืื ืืืงืืื Stream ืืื ืืจื ืฉื ืืืืข ืฉืืืืข ืืงืืืฅ ืืืืกืืคืื ืืจื ืกืคืืจืืฆืื ืฉื ืคืืขื ืื ืืืืืื ืืืงืกื ืืงืืืื Stream ืฉื ืืืจืืืืช.
ืืืืืืืช? ืืฉืืื.
ืงืจืืืช ืืืืื ืืงืืืฅ ืืืืคืกืชื ื Chunk-ืื
ื ืชืืื ืขื ืงืจืืืช ืงืืืฅ ืืื ืืจื ืืคื ืืืืงืื ืืจื Stream ืืงืจืืื. ืืคืื ืงืฆืื fs.createReadStream ืฉื Node ืืืฆืจืช Stream ืืงืจืืื ืฉื Node, ืืืขืืจืช stream.toWeb ื ืืคืื ืืืชื ื Stream ืกืื ืืจืื. ืืงืจืืื ืืืจื ืืงืจืืื ืืื ืคืฉืื ืืืืจืฆืื ืืกืื ืืจืื ืืช ืืืื ื ืืื ืืืชืื:
import fs from 'node:fs';
import stream from 'node:stream';
const sin = stream.Readable.toWeb(fs.createReadStream('text.md'));
for await (const chunk of sin) {
console.log(chunk);
}
ืืืคืื:
Uint8Array(15143) [
35, 32, 215, 156, 215, 162, 215, 169, 215, 149, 215, 170,
32, 215, 144, 215, 170, 32, 215, 148, 215, 144, 215, 153,
215, 158, 215, 153, 215, 153, 215, 156, 32, 215, 160, 215,
164, 215, 156, 215, 144, 32, 215, 169, 215, 149, 215, 145,
10, 215, 144, 215, 153, 215, 158, 215, 153, 215, 153, 215,
156, 32, 215, 148, 215, 149, 215, 144, 32, 215, 155, 215,
160, 215, 168, 215, 144, 215, 148, 32, 215, 144, 215, 151,
215, 147, 32, 215, 148, 215, 158, 215, 167, 215, 149, 215,
158, 215, 149, 215,
... 15043 more items
]
ืงืจืืืช ืืงืกื ืืงืืืฅ ืืืืฆืขืืช ืืจื ืกืคืืจืืฆืื
ืืงืจืืื ืืงืืืฅ ืืจื Stream ืขืืื ืืืืคืฉืจื ืืงืจืื ืืช ืืงืืืฅ ืืืืืงืื. ืืงืืฆืื ืืื ืืจืืื ืืคืฉืจ ืืขืฆืืจ ืืื, ืืื ืื ืืืืืื ืฉืืงืืืฅ ืืืืืื ืืงืกื ืืืื ื ืจืฆื ืื ืืคืขื ื ืืืชื ืืืจืืืช ืืืจืืืืช ืขื ืืืกื. ืืฉืืื ืื ืืืืืง ืืชืงื ืฉื Web Streams ืืืกืืฃ ืืืืงื ืืฉื TextDecoder. ืืฉืืืืฉ ืื ืืืื ืคืฉืื, ืื ืื ื ืืืฆืจืื ืืคืขื ื, ืืื ืื ืืคืฉืจ ืืืขืืืจ ืื ืืช ืืงืืืื (ืืจืืจืช ืืืืื ืืื utf8), ืืื ืืคืขืืืื ืืช ืืคืื ืงืฆืื decode ืขื ืืืืง ืฉื ืืืืื ืืฉืืื ืืคืขื ื ืืืชื ืืืงืกื. ืืื ืชืืืื ืืื ืืืืข ืืืคื ืืื ืฉืฆืจืื ื Multi Byte Strings ืืคืืื ืืื Chunk-ืื.
ืืฉืืื ืฉืืชืืื ืืช ืืงืืืืช ืชืืคืืก ืืงืกืืื ืืืงืื ืืืืื ืฆืจืื ืจืง ืืืขืืืจ ืืช ืืืืืื ืฉืื ื ืืจื ืืื Decoder. ืืืืื ื ื API ืฉื Streams ืืกืคืง ืืจื ืงืื ืืขืฉืืช ืืช ืื ืืืืืช ืืืืงื ืืฉื TextDecoderStream:
import fs from 'node:fs';
import stream from 'node:stream';
const sin = stream
.Readable
.toWeb(fs.createReadStream('/etc/shells'))
.pipeThrough(new TextDecoderStream());
for await (const chunk of sin) {
console.log(chunk);
}
ืืชืืื ืืงืืืฅ ืขื WritableStream
ืืืชืืื ืืงืืืฅ ืืฉ ืืื ื ืงืืืืช ืฉืฆืจืื ืืืืืจ ืืื ืืขืืงืจืื ืืื ืืคืชืขืืช ืืืืืืช:
1. ืคืืชืืื WritableStream ืืืคืขืืืื ืืช ืืคืื ืงืฆืื getWriter ืฉืื.
2. ืืคืขืืืื ืืช ืคืื ืงืฆืืืช write ืฉื ื Writer ืฉืงืืืื ื ืืฉืืื ืืืชืื.
3. ืืกืืฃ ืงืืจืืื ื Close ืฉืกืืืจ ืืช ื Writer ืืืช ื Stream.
ืืงืื ืืื ืืืชื ืืืืื ืืงืืืฅ:
import fs from 'node:fs';
import stream from 'node:stream';
const sout = stream
.Writable
.toWeb(fs.createWriteStream('demo.bin'));
const writer = sout.getWriter();
const data = new Uint8Array(10).fill(0).map((_, i) => i);
await writer.write(data);
writer.close();
ืืขืชืงื ืขื Pipe
ืืืจืืง ืืืืจืื ืืืืื ืขื Streams ืืื ืืขืชืงืช ืงืืฆืื, ืืืืฉืืง ืืื ืืื - ืืืงืื ืืืจืืฅ ืืืืื ืฉืชืงืจื ืืฆืืจื ืืคืืจืฉืช ืืืืงืื ืืชืืชืื ืืืชื ืืืจื ืืฉื ื ืืคืฉืจ ืคืฉืื ืืืืจ ืืจื ืืงืจืืื ืืืจื ืืืชืืื ืืืื ืืกืชืืจ. ืื ื ืจืื ืืื:
import fs from 'node:fs';
import stream from 'node:stream';
const sin = stream
.Readable
.toWeb(fs.createReadStream('/etc/shells'));
const sout = stream
.Writable
.toWeb(fs.createWriteStream('shells.txt'));
sin.pipeTo(sout);1 420
ืืืื ืืช ืืืืืช, ืืืฆืืขืื ืืจืืขืื
ืืืื ืืืฆืจ ืืืืืื ืฉืื ื ืืืชื ืฉืืืช ืืืืืข ืืืกืืช ืคืฉืืื - ืืืื ืฉืืืจ ืืจืืืกืืืช ืืืืื ืืฉืืื ืืจืืืกืื ืืฉ ืืืื ืืงืืืื ืืืืื ืืืืืจื ืืื ืืื ืืืื ืืฉืืื ืืืืื ืื ืขื ืืืืืื ืืืื. ืืฉืืื ืื ืืืฆืืจ ืืคืืืืืืช ืื ืคืขื ืฉืืืกืืคืื ืชืจืืื ืืืฉ ืืืื ืืืืง ืืืกืืก ืื ืชืื ืื ืื ืืฉ ืืืจ ืืจืืืกืื ืขื ืืืืืื ืืืื, ืืืืฆืจ ืจืง ืื ืืืืืจ ืืืืืืจ ืืืฉ.
ืืืช ืืืชื ืืฉืืืืชื ืฉืืืงืืช ืืืืื ืืืืฆืจืช ืืจืืืกืื ืื ืืืืืจื ืืช ืืืจืืืกืื ืืงืืืืช:
g
.V()
.has(VertexLabels.Card, Properties.IndexedLabel, VertexLabels.Card)
.where(__.and(
__.out(EdgeLabels.Front).hasId(front.entityId),
__.out(EdgeLabels.Back).hasId(back.entityId)))
.fold()
.coalesce(
__.unfold(),
__.addV(VertexLabels.Card)
.as("card")
.addTimestampsProperties()
.property(Properties.IndexedLabel, VertexLabels.Card)
.asCard()
.addE(EdgeLabels.Front).to(__.V(front.entityId))
.select("card")
.addE(EdgeLabels.Back).to(__.V(back.entityId))
.select("card"))
.id()
.next()
ืืชืจืืื ืืขืืจืืช - ืงื ืืช ืื ืืืจืืืกืื, ืืคืฉ ืืื ืฉืืชืืื ืืืืืื ืฉืื ื ืจืืฆื ืืืืกืืฃ, ืื ืงืืื ื ืฉืชืืฉ ืื ืืืจืช ืืืกืฃ ืืจืืืก ืืืฉ ืืืืจ ืืืชื. ืงื ืืงืจืื ืืช ืื ืืงื ืืืืื ืืื ืื ืฉืืืจ.
ืืืื ืฉืืื ืืืื ืืืืืื ืืืจืืืก, ืืืจ ืืืื ืืฉ ืืืชืจ ืืื ืืจืืืกืื ืืืจืฃ ืืืืคืืฉ ืืจืืืก ืืคื ืืืืืืจืื ืืืืฆืืื ืืื ื ืืชืืื ืืงืืช ืืืชืจ ืืื ืืื. ืืื ืืื? ืืฉืื ื ืชืคืกืชื ืืช ืืฉืืืืชื ืืชืืื ืืืจ ืืงื ืื 3-4 ืฉื ืืืช ืืืื ืืจืืืก.
ืืืืช ืืืืื ืืืื ืืืขืชื ืืืืชืจืื ืฉื ืืจืืืื - ืงื ืืจืืืช ืืช ืืืขืืืช ืืงื ืืชืงื ืืืชื. ืืืจืืืื ืื ืื ื ืชืืื ืจืืฆืื ืืืชืืื ืฉืืืืชื ืืฆืืืช ืฉืืืคืืข ืืืื ืืงืก. ืืืืื ืฉืื ืืจืืืก ืื ืืืืจ ืฉืื ืืืืข ืืื ืืื ืืืืืจ ืืืืืื ืืืฆืืชืื ืฉื ืืืืืื ืื ืืืืืื ืืช ืืืงืกื ืฉื ืืืืื, ืฉืื ืืืจ ืืืืข ืฉืืคืฉืจ ืืฉืืืจ ืืืื ืืงืก. ืืื ืืชืืงืื ืืื ืืกื ืืื ืืฉื ืืช ืืช ื ืงืืืช ืืื ืืกื ืืฉืืืืชื. ืืืงืื ืืืชืืื ืขื ืื ืืืจืืืกืื ืืืืคืฉ ืืช ืื ืฉืืชืืืจ ืืืืืื ืฉืืฉ ืื, ืื ื ืืชืืื ืขื ืืืช ืืืืืื ืืืืื ืืคื ืืงืฉืชืืช ืืื ืืืืื ืื ืืื ืืืืืจืช ืืืจืืืก ืฉืืชืืื ืืืืื ืืฉื ืื. ืืืช ืืฉืืืืชื ืืืชืืงื ืช:
val id = g
.V(front.entityId)
.coalesce(
__.in(EdgeLabels.Front).where(__.out(EdgeLabels.Back).hasId(back.entityId)),
__.addV(VertexLabels.Card)
.as("card")
.addTimestampsProperties()
.property(Properties.IndexedLabel, VertexLabels.Card)
.asCard()
.addE(EdgeLabels.Front).to(__.V(front.entityId))
.select("card")
.addE(EdgeLabels.Back).to(__.V(back.entityId))
.select("card")
).id()
.next()
ืืืืช ืืื ืืกืืื ืฉืื ื ืืขืืืฃ ืืช ืืจืืืื ืขื ืคื ื Cypher ื Datalog. ืืจืืืื ื ืืชื ืืื ืืจืื ืฉืืืื ืืืื ืืืืฆืขืช ืืฉืืืืชื, ืืืืคืฉืจ ืืืื ืืงืืืช ืืืชืืื ืืช ืืืคื ืกืจืืงืช ืืืจืฃ ืืืืื ืื ืชืื ืื ืืกืคืฆืืคื ืฉื ืืืขืจืืช.1 420
ืืฉืืชืงื ืขืืื ืืจืขืชื
ืืืืจืกืืืช ืืฉื ืืช ืฉื ืืกืคืจืื ืืกืื ืืจืืืช ืฉื ืืื ื ืืื ืืืืื ืืฉื
read_lines ืฉืืคืฉืจ ืืืชืื ืงืื ืืื:
import { readLines } from "https://deno.land/std@0.221.0/io/read_lines.ts";
import * as path from "https://deno.land/std@0.221.0/path/mod.ts";
const filename = path.join(Deno.cwd(), "std/io/README.md");
let fileReader = await Deno.open(filename);
for await (let line of readLines(fileReader)) {
console.log(line);
}
ืื ืฉืืฉืื ืื ืืืืืื ืืกืืฃ ืฉืงืืจืืช ืงืืืฅ ืฉืืจื ืืืจ ืฉืืจื ืืืืคืฉืจืช ืืืคื ืืื ืฉืืจื ืื ืคืจื.
ืืืืืื ืืืืข ืืืื ืขื ืืืืจืช Deprecation. ืืฉืืื ืชืืืืืช ืืชืงื ืฉื Web Streams API ืืืืจืื ืืืื ื ืืืืืื ืืืืชืจ ืขืืื ืืืืืืืฅ ืืขืืื ืขื Web Streams, ืฉืืจืืข ืื ืืืื ืืช ืืคืื ืงืฆืืื ืืืืืช ืืืืช.
ืืขืืฉืื ืืฉืืื - ืืื ืืฉืชืฃ ืคืขืืื ืขื ืืงืืืื ืืืืชืื ืืื ืื ืื ืื ืฉืืืจ ืฉืืจืืช, ืืืืฉืืจ ืขื ืืื ืื ืื ื Deprecated ืื ืืืื ืืืฉืชืืฉ ืืืืืื readline ืฉื node, ืฉืื ื ืืขื ืืงืืืช ืืชืืื ืืช ืืื ื?
ืื ื ืืืื ืฉืืื ืื ืชืฉืืื. ืื ืืื ืฉืื ืืื ืืืืฉืืจ ืขื readline ืฉื node ืืืืืคื ืืืื ืืืฉืชืืฉ ืืกืคืจืื ืืกืื ืืจืืืช ืฉื node ืื ืืขืืืื ืขื ืืื ื, ืืืื ืฉืืกืคืจืื ืืกืื ืืจืืืช ืฉื ืืื ื ืขืืืื ืื ื ืจืืืช ืืกืคืืง ืืฆืืื.
ื .ื. ืืื ืื ื ืจืื ืืฉืงืืจืืื ืงืืืฅ ืฉืืจื ืืืจื ืฉืืจื ืขื ื Web Streams API:
const file = await Deno.open("a.js", { read: true });
const readableStream = file.readable.pipeThrough(new TextDecoderStream()).pipeThrough(new TransformStream({
transform: (chunk, controller) => {
const lines = chunk.split("\n");
for (const line of lines) {
if (line) {
controller.enqueue(line);
}
}
},
}));
for await (const line of readableStream) {
console.log(\> ${line}\);
}
ืืืืช ืืืืจืกื ืขื readline ืฉื node:
import readline from 'node:readline';
import fs from 'node:fs';
const myName = "a.js";
const rl = readline.createInterface({
input: fs.createReadStream(myName),
})
let index = 0;
rl.on('line', (line) => {
index += 1;
console.log(\${String(index).padStart(2, '0')} ${line}\);
});
ืื ืืขืชืื? ืืืื ืืืจืกื ืืืืชื ืืืืจืื? ืืืื?1 420
ื ื ืื ืืชืืื ืคืฉืื ืขื ืืืืืช for, ืืื ืืืืขื ืฉืืจืช ืืืืฅ - ืื ื ืืืงื ืื ืฉื ืงืืืฅ ืืืขืืืจ ืืืชื ืืคืงืืื ืืืื ืืช ืืฉืคื ืฉื ืงืจืืช parse ืฉืืคืขื ืืช ืืช ืืืืจืืืช ืืฉื ื ืืฉืชื ืื (ืืืงืจื ืฉืื n ื name, ืขื ืืงืฃ ืืื ืืื). ืืืจื ืื ืืชืืืืื ืืฉืืง ืขื ืืืืืข, ืืืคืืื ืืช n ืืืกืคืจ, ืืขืืื ืืืชื ื-1 ืืื ืืืืจืื ืืช ืื ืืขืืืืืช ืืืืจืืืช ืืืช ืืืชื ืื ื ืฉืืืจ ืืืฉืชื ื
newname. ืฉืืจื ืืืจืื ื ืฉื ืืืืืื ืืื ื mv ืฉืืฉื ื ืืช ืฉื ืืงืืืฅ.
ืฉืืคืื ืกืงืจืืคื ืืขืฆืื
ืขื ืืคื ืืืืชื ืืืื ืฉืืืขืชื ื Shell ืฉืืืืข ืืขืฉืืช ืืื ืืื ืื ืืืืขื ืืืฉืืื ืืฉืืืฉืืช ืฉื nushell ืงืฆืช ืืืื ืืืชื. ืืืืจื ืฉืื ื ืืื ืืืชืื ืกืงืจืืคื ืฉืืงืื ืืฉืืจืช ืืคืงืืื ืืกืคืจ ืฉืืืช ืฉื ืงืืฆืื ืืืขืชืืง ืืช ืขืฆืื ืืงืืฆืื ืฉืฉืืืชืืื ืขืืจื ืืคืจืืืจืื. ืืืขืื? ื nushell ืืื ืืงืืืื ืืืฉืชื ื $0 ืฉื Shell-ืื ืงืืืกืืื ืืืื ืื ื ืฆืจืื ืืืกืชืื ืขื ืื ืฉืื ื ืืืืข ืื ืฉื ืืงืืืฅ. ืืื ืื ืฉืฉื ืืงืืืฅ ืืื clone.nu ืืงืื ืืื ืขืืื:
def main [...destinations] {
let sourceFile = $env.FILE_PWD + "/clone.nu"
for output in $destinations {
cp $sourceFile $output
}
}
ืกื ืืื nushell ื ืจืื ืืื ืคืจืืืงื ืืืืื - ืืื ืขืืื ืืืจ ืืขืืืื ืขื ืืืืข ืืืงืื ืขื ืืงืกื ืืืืื ืืืกืื ืืขืืืืช ืืชืืื ืืืช ืืืจืืืืช.1 420
ืฉืืืฉื ืกืงืจืืคืืื ืจืืฉืื ืื ื nushell ืืื ืืืืื ืืื ืื ืขืืื
ื ื-ืฉื ืืื ืกืื ืืืฉ ืฉื Shell, ืืื ืืชืื ื rust ืืืืื ืืช ืืืืฉื ืฉื Powershell - ืืคืื ืื ืืืจ ืืื data - ืื ืืืื ืืงืก. ืืืื ื ืืชืื ืฉืืืฉื ืกืงืจืืคืืื ืจืืฉืื ืื ื nushell ืืื ืืืืื ืืื ืื ืขืืื ืืืืฉืื ืื ืืื ืืชืืื.
ืืฆืืช ืืงืกื ืขื ืขืจื ืืืืงืืคืืื
ืืช nushell ืืคืฉืจ ืืืชืงืื ืืคื ืืืืจืืืช ืืืชืจ ืฉืืื:
https://www.nushell.sh/
ืืื ืงื ืืืืฆืขืืช ืืคืขืืช:
brew install nushell
ืืืจื ืืืชืงื ื ืืคืขืืืื nu ืืื ืืืืื ืก ื Shell ืืืกืคืืง ืืืคืขืื ls ืืื ืืืืื ืฉืื ืื ื ืืืจ ืื ืืงื ืืก. ืื ืืคืื:
ls 27/03/24 18:00:15
โญโโโโฌโโโโโโโโโโโโฌโโโโโโโฌโโโโโโโโฌโโโโโโโโโโโโโโโโโฎ
โ # โ name โ type โ size โ modified โ
โโโโโผโโโโโโโโโโโโผโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโค
โ 0 โ 02-one โ dir โ 64 B โ 2 hours ago โ
โ 1 โ 03-two โ dir โ 64 B โ 2 hours ago โ
โ 2 โ 04-three โ dir โ 64 B โ 2 hours ago โ
โ 3 โ carlos.py โ file โ 643 B โ 35 minutes ago โ
โ 4 โ clone.nu โ file โ 153 B โ 2 hours ago โ
โ 5 โ inc.nu โ file โ 229 B โ an hour ago โ
โฐโโโโดโโโโโโโโโโโโดโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโฏ
ืกืืื ืืงื ืื ืื ืืชืคืงื ืคืืืช ืื ืืืชืจ ืืื ืฉืชืคืงื ื Shell-ืื ืืงืืืกืืื, ืืื ืขืืฉืื ืืืื ืฉืืื ืืื data ืืจืื ืืืชืจ ืงื ืืขืืื ืขื ืืืืืข, ืืืืืื ืืฉืืื ืืืืคืืก ืจืง ืืช ืฉื ืืงืืืฅ ืืืืืื ื ืืชืื:
ls | select type size
โญโโโโฌโโโโโโโฌโโโโโโโโฎ
โ # โ type โ size โ
โโโโโผโโโโโโโผโโโโโโโโค
โ 0 โ dir โ 64 B โ
โ 1 โ dir โ 64 B โ
โ 2 โ dir โ 64 B โ
โ 3 โ file โ 643 B โ
โ 4 โ file โ 153 B โ
โ 5 โ file โ 229 B โ
โฐโโโโดโโโโโโโดโโโโโโโโฏ
ืกืงืจืืคื ื nushell ืืกืชืืื ืืกืืืืช nu. ืื ืืฆืืืชื ืืืชืงืื ืืช ืืชืืกืฃ ื vim ืฉืืื ืืื ืืชืืกืฃ ื VS Code ืขืื ืื ืืฆืืื. ืืื ืฉืืืืืชื ืฉืืืฉื ืกืงืจืืคืืื ืืฉืืื ืืชืืื, ืืจืืฉืื ืืงืื ืฉื ืฉื ืขืจื ืืืืงืืคืืื ืืืฆืื ืืช ืืชืืื:
def main [value] {
let url = $"https://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=($value)&rvslots=*&rvprop=content&formatversion=2&format=json"
http get $url | get query.pages.0.revisions.0.slots.main.content
}
ืืื ืื ืขืืื? ืื ืกืืคืจืชื ืืืจ ืฉืื ืืืจ ืื Data, ืืืื ืื JSON ืฉืืืืข ืืืจืฉืช ืืื ืืืืข ืฉืืคืฉืจ ืืขืืื ืืืชื. ืืคืงืืื http get ืคืื ื ืืจืฉืช ืืืฉืื ืืืืข ืืืคืงืืื get ืืฆืืื ืจืง ืืืง ืืืืืื. ืืืงืจื ืฉื ืืืงืืคืืื ื JSON ืืืื ืืืืืงืืื ืืงืื ื ืื ืืืืืจืืืช:
query.pages.0.revisions.0.slots.main.content
ืืื ืื ืชืื ืืชืื ืืืืืืงื ืฉืืืื ืืช ืืขืจื. ืื ืชืชืงืื ื nushell ืืชืฉืืจื ืืช ืืกืงืจืืคื ืืงืืืฅ ืืฉื wiki.nu ืชืืืื ืืืคืขืื ืืืชื ืืืืคื ืืื ืืื ืืืฆืื ืขืจื ืืชืื ืืืงืืคืืื:
nu wiki.nu Pet_door
ืฉืื ืื ืฉื ืฉื ืื ืืงืืฆืื ืฉืืชืืืืื ืืืกืคืจ
ืืชืืจ ืฉื ื ืฉืจืฆืืชื ืื ืกืืช ืืฉืืื ืืืืื ืขื nushell ืืื ืืฉื ืืช ืืช ืืฉืืืช ืฉื ืื ืืงืืฆืื ืฉืฉืื ืืชืืื ืืืกืคืจ ืืืืฆืขืืช ืืขืืืช ืืืกืคืจ ื-1, ืืืืืจ ืื ืืื ืื ืืชืืงืื ืืงืืฆืื:
ls [0-9]*
27/03/24 18:07:58
โญโโโโฌโโโโโโโโโโโฌโโโโโโโฌโโโโโโโฌโโโโโโโโโโโโโโฎ
โ # โ name โ type โ size โ modified โ
โโโโโผโโโโโโโโโโโผโโโโโโโผโโโโโโโผโโโโโโโโโโโโโโค
โ 0 โ 02-one โ dir โ 64 B โ 2 hours ago โ
โ 1 โ 03-two โ dir โ 64 B โ 2 hours ago โ
โ 2 โ 04-three โ dir โ 64 B โ 2 hours ago โ
โฐโโโโดโโโโโโโโโโโดโโโโโโโดโโโโโโโดโโโโโโโโโโโโโโฏ
ืื ืืืจื ืืคืขืืช ืืกืงืจืืคื ืื ื ืืงืื:
ls [0-9]*
โญโโโโฌโโโโโโโโโโโฌโโโโโโโฌโโโโโโโฌโโโโโโโโโโโโโโฎ
โ # โ name โ type โ size โ modified โ
โโโโโผโโโโโโโโโโโผโโโโโโโผโโโโโโโผโโโโโโโโโโโโโโค
โ 0 โ 03-one โ dir โ 64 B โ 2 hours ago โ
โ 1 โ 04-two โ dir โ 64 B โ 2 hours ago โ
โ 2 โ 05-three โ dir โ 64 B โ 2 hours ago โ
โฐโโโโดโโโโโโโโโโโดโโโโโโโดโโโโโโโดโโโโโโโโโโโโโโฏ
ืืงืื ืืกืงืจืืคื:
for f in (ls [0-9]* | get name) {
let newname = $f | parse '{n}-{name}' | into int n | update n {|row| $row.n + 1 } | each {|row| [($row.n | fill -a right -c '0' -w 2), "-", $row.name] | str join } | get 0
mv $f $newname
}1 420
ืืจืืืื - ืกืืืื ื ืืกืื
ืืืืืฉืื ืืืืจืื ืื ืื ืืชื ืืื ืืืืืจื ืฉืืฉืชืืฉ ืืืกืืก ื ืชืื ืื ืืจืคื. ืืืื ื ืื ืืชื ืืืืืงืจ ืขื ืืกืืกื ื ืชืื ืื ืืจืคืืื ืืืืืชื ืขื ืืืื ืกืืืื ืฉืืื ืืื ืืฉืืจื ืืชืืชืื ื ืื ืขืคืชื ืขืืืื ืืื ืจืื ืฉืืคืจืืืงื ืืื ืืืจ ืืืืืจ ืืคืืกืืืจืก. ืื ื ืืกืื ืืื ืืช ืื ืงืืืืช ืืืจืืืืืช ืืื ืืกืื.
ืืจืืืื, ื ืืื ืื ืืืืืืง
ืืืงืชื ืฉืืืฉื ืืกืืกื ื ืชืื ืื ืืจืคืืื - neo4j, datomic ื TinkerPop ืขื ืฉืืืจืชื ืืืื ืงืจ, ืืื ืื ืืื ืืฉืืืช ืืืืืืื ืฆืื. ืืฉืคืช ืืฉืืืืชืืช ืฉื ืืืืืืง ืื ืืชืืืจืชื. ื ืืื ืืื ืืกืืจื ืืื ืืืื ื ืฉืืจ ืืื ืงืจืคืืค ืฉืืื ืืืื Spec ืืฉืคืช ืฉืืืืชืืช ืฉื ืงืจืืช ืืจืืืื. ืืช ืืจืืืื ืืืงื ืืื ืืืืื ืืื ืืกืืคื ืฉื ืืืจ ืืื ืืขืืื. ืืชืืชื ืขืืื ืืื:
https://www.tocode.co.il/blog/2023-10-gremlin-first-steps
ืืืื:
https://www.tocode.co.il/blog/2023-10-dsl-gremlin-queries
ืืื ืืืขืื ื Spec ืื ืฉืฆืจืื ืืกืืฃ ืืืจืืฅ ืืช ืื ืืื ืืกืืก ื ืชืื ืื ืืกืืื. ืืฉ ืืืื ืืกืืกื ื ืชืื ืื ืฉืืจืืฆืื ืืจืืืื ืืื ืืืื ืฉืื ืื ืืื ืืื, ืืื ืืืืคื ืื ืื ืืจืืฆืื ืืจืืืื ืื ืชืืื ืืื. ืื ืืืืจ ืฉืืืื ืืืืืช ืฉืฉืืืืชืืช ืืขืืื ืื ืืขืืื ืืฆืืจื ืืืกืืช ืืืืจื ืขื ืืกืืก ื ืชืื ืื ืืื ืืื ืื ืืขืืื ืขื ืืกืืก ื ืชืื ืื ืืืจ.
ืขืืืจ ืืืื ืฉืื ืืืจืชื ืืกืืฃ ื JanusGraph ืฉื ืจืื ืืืฉ ืืื ืืืืืงืืช ืืงืืืืืช ืืืืื ืืขืืื ืื In Memory ืืืฆื ืืืืงืืช, ืื ืืื ืืขืจืืช ืงืืฆืื ืืื ืืื ืืกืืก ื ืชืื ืื ืืืืืจ ืืื ืงืกื ืืจื.
ืืขืื 1 - ืชืืขืื
ืืชืืขืื ืืืชืจ ืฉื ืืคืืฆ'ื ืืืื ืืคืืจื, ืืื ืขืืืื ืืื ืืืื ืชืืขืื ืืจืฉืช ืืืืฅ ืืืชืจ ืืจืฉืื, ืืืื ืื ืืคืืจืืืื ืืืืฉื ืื ืืืื ืืื AI ืื ืืืืขืื ืืขืืืจ ืืืชืืืช ืฉืืืืชืืช. ืืชืืฆืื ืืื ืขืงืืืช ืืืืื ืืืชืจ ืงืฉื ืืขืจืืื ืืงืื ืืื ืฉืืืืชืืช ืฉืืชืืชื ืืฉืืืฉ ืื ืืืขืชื ืืจืืืื ืืฉืืืืชืืช ืืืชืจ ืจืฆืื ืืืช ืฉืืชืืชื ืืฉืืืจ ืืื ืชื ืืื ืื ืขืืื.
ืื ืืจืืช ืืชืคืขืื ืืืื ืงืฉื ืืืฆืื ืืืืข ืขื JanusGraph ืืืืฅ ืืชืืขืื ืืจืฉืื, ืืืจืื ืคืขืืื ืืชื ื ืชืงืข ืขื ืืขืืืช ืืฆืจืื ืืืคืืจ ื Issues ืืืืืืื ืืืืืื ืงืืืฆืืช ืืฉืืื ืืืฆืื ืืืืื ืื.
ืืขืื 2 - ืืืืจืื
ืืืืจ ืืฉื ื ืฉืื ืกืืคืจื ืื ืขื JanusGraph ืื ืฉืืื ืืืื ืืืืจืื. ืืฉ ืฉืืืขื ืฉืื ืืืื ืฉืืื ืืชืื ื Java, ืืืืงืืืืช ืืืจืื ืืืืจืื ืฉืืคืฉืจ ืืฆืืฆื ืืช ืฆืจืืืช ืืืืืจืื. ืื ื ืื ืืืืข. ืืชืืฆืื ืืคืืขื ืืืชื ืฆืจืืืช ืืืืจืื ืืืื ืืืืื ืขืืืจ Cache-ืื ืื ืืฉืืกืืก ืื ืชืื ืื ืื ืืื ืืืื, ืืื ืืืฉืืืื ืืืกืืกื ื ืชืื ืื ืืืืืืื (8 ื'ืืื ืืืืจืื ืืฉืืื ืืกืืก ื ืชืื ืื ืืืฉืืงืื).
ืืขืื 3 - ืืื ืืงืกืื ืื ืงืจืืืืื
ืชืืื ื ืฉืืืฉืืช ืฉื JanusGraph ืฉืืืืืชื ืชืื ืืื ืชื ืืขื (ืืื ืื ืืืืฃ ืื ืืกืืืื ืืืื) ืืื ืฉืืคืฉืจ ืืืฉืช ืื ืชืื ืื ืจืง ืืจื ืืื ืืงืก. ืืื ืื ืื ืืืืืง, ืชืืื ืืคืฉืจ ืืืชืื ืฉืืืืชืช ืืจืืืื ืฉืื ืชืขืืืจ ืืจื ืืื ืืงืก, ืื ืคืฉืื ืฉืืฉืืืืชื ืื ืชืกืชืืื ืืฃ ืคืขื. ื ืืื ืื ืืืกืืกื ื ืชืื ืื ืืืืืืื ืืืืชื ืฆืจืื ืืืืืืจ ืืื ืืงืกืื ืืื ืื ืจืง ืืฉืืื ืืืื ืืืืข ืื ืืฉืืืืชืืช ืืืจืืืืช. ืืื ืฉืืืชืจ ืืจืืื ืกืคืฆืืคืืช ื JanusGraph ืื ืฉืืฉ ืืืฉ ืืงืก ืืืืืจื ืืฉืื ืื ืฉื ืืื ืืงืก ืืื ืืืช ืื ื ืืื ื ืฉืืืชืืื ืืืืื ืืงืืงื ืืช ืืื ืืื ืืชื ื ืชืงืข ืขื ืืืื ืืื ืืงืก ืืืฆื ืืฆื ืืคืื.
ืกืืืื
ืืฉืืจื ืืชืืชืื ื ืืกืืกื ื ืชืื ืื ืืจืคืืื ืขืืืื ื ืจืืื ืื ืืื ืจืขืืื ืืื ืืื ืืคืืืช ืืืืืื ืฉืื ืืืืืืฉ ืืื ืืืืื. ื ืคืืื ืฉื ืืืืื (ืื ืชืืื ืืจืืืื) ืืื ืืืื ืืงืจ ืื ืืฉืฉืืจืชื ืขืืื ืืขื ืืืืข, ืืืจืื ืืคืฉืจืืืืช ืืืื ืฉืืืคืืขืืช ืืืชืจ ืฉื ืืจืืืื ืื ืขืืื ืื ืืื ืืกืืจืืืช ืืื.
ืืืกืื ืืงืืื ืฉื JanusGraph ืืจืฉ ืืจืื ืืืชืจ ืืชืขืกืงืืช ืืืืืจืืช ืืืฉืืืื ืืคืืกืืืจืก ืืขืงืืืช ืืืืืื ืืืชืืืช ืืฉืืืืชืืช ืืืชื ืื ืืืืืืช. ืืฉ ืื ืคืืืช ืืืื ืืจืคืืื ืืืฉืืืื ืืขืืืื ืขื ืืกืืกื ื ืชืื ืื ืืืืืืื.
ืื ื ืื ืจืื ืื ืืืืจ ืืืกืืก ื ืชืื ืื ืืจืคื ืืคืจืืืงื ืืื ืฉืื, ืื ืืขืชืื? ืืฆื ืืื ืืขืืื ืขื ืืกืืกื ื ืชืื ืื ืืจืคืืื? ืืื ืืื ืืืืืืืช ืฉืืื? ืืคืฉืจ ืืฉืชืฃ ืืืืืจื ืื ืืชืืืืืช ืืื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
