uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
+130 kunlar
Postlar arxiv
ToCode
1 419
# ืžื” ืืคืฉืจ ืœื”ื’ื™ื“ ื‘ืžืงื•ื ืดืื™ ืืคืฉืจืด ืื™ ืืคืฉืจ ื”ื•ืจืก ืืช ื”ืžืกื™ื‘ื”. ืž"ืื™ ืืคืฉืจ" ืื™ืŸ ืœืืŸ ืœื”ืชืงื“ื ื•ื”ื•ื ื›ืžืขื˜ ืืฃ ืคืขื ืœื ื ื›ื•ืŸ. ื‘ืจื•ืจ ืฉื™ืฉ ื“ื‘ืจื™ื ืฉืื™ ืืคืฉืจ ืœืขืฉื•ืช, ืื‘ืœ ืื ื”ื‘ื•ืก ืื• ื”ืœืงื•ื— ื‘ื™ืงืฉ ืžืฉื”ื• ื–ื” ื›ื ืจืื” ื‘ื’ืœืœ ืฉื”ื•ื ืจื•ืฆื” ืžืฉื”ื• ืฉื”ื•ื ืจืื” ื‘ืžืงื•ื ืื—ืจ, ืื• ืžืฉื”ื• ืฉื ืจืื” ืœื• ื”ื’ื™ื•ื ื™. ืื•ืชื• ื‘ื•ืก ืื• ืœืงื•ื— ืœื ืจื•ืื” ืืช ื›ืœ ืžืขืจื›ืช ื”ืื™ืœื•ืฆื™ื ืฉืœื›ื, ื•ืœื›ืŸ ื’ื ืœื ืžื‘ื™ืŸ ืื•ืชื”. ื›ืฉืื ื™ ืžื—ืคืฉ ื‘ืจืฉืช ื•ืžื’ืœื” ืฉืœืืงืกื™ื•ืก ืื™ืŸ ืชืžื™ื›ื” ื‘ื”ื’ื‘ืœืช ืžืกืคืจ ื” Redirects ื‘ืขื‘ื•ื“ื” ืžื”ื“ืคื“ืคืŸ, ืื ื™ ื™ื›ื•ืœ ืœื”ืคื•ืš ืืช ื–ื” ืœืžืกืจ ืœืœืงื•ื— ื•ืœื”ื’ื™ื“ ืฉื‘ืžืขืจื›ืช ืื™ ืืคืฉืจ ื™ื”ื™ื” ืœื•ื•ืชืจ ืขืœ ืžืขืงื‘ ืื—ืจื™ Redirects. ืื• ื›ืฉืื ื™ ืžื—ืคืฉ ื‘ืจืฉืช ื•ืžื’ืœื” ืฉื‘ืคืจื•ื™ืงื˜ create-react-app ื” jest ืœื ืชื•ืžืš ื‘ื”ื•ืกืคืช ื‘ื™ื™ื‘ืœ ืคืœืื’ื™ืŸ, ืื ื™ ื™ื›ื•ืœ ืœืชืจื’ื ืืช ื–ื” ืœืžืกืจ ืœืœืงื•ื— ื•ืœื”ื’ื™ื“ ืฉืื™ ืืคืฉืจ ืœื‘ื“ื•ืง ืืช ื”ืคืจื•ื™ืงื˜ ืื ื ืฉืชืžืฉ ื‘ืกืคืจื™ื™ืช npm ืžืกื•ื™ืžืช ืฉืฆืจื™ื›ื” ื”ืžืจื” ืขื ืคืœืื’ื™ืŸ ืฉื‘ืžืงืจื” ืœื ืžื•ืคื™ืข ื‘ื‘ืจื™ืจืช ื”ืžื—ื“ืœ. ืื‘ืœ ืฉื ื™ ื”ืžืงืจื™ื ื™ืขื‘ื“ื• ื˜ื•ื‘ ื™ื•ืชืจ ืื ื ืชืงืฉืจ ืœืœืงื•ื— ืืช ืกื˜ ื”ืื™ืœื•ืฆื™ื ื•ื”ืขืœื•ื™ื•ืช ื•ื ืžืฆื ืคื™ืชืจื•ืŸ ืฉื›ืŸ ืืคืฉืจ ืœืขืฉื•ืช- 1. ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื”ื’ื‘ืœืช ื” Redirects ื‘ืืงืกื™ื•ืก ืžืื•ื“ ื—ืฉื•ื‘ื”, ืžืกืคื™ืง ื—ืฉื•ื‘ื” ื‘ืฉื‘ื™ืœ ืœืชืจื•ื ืœืืงืกื™ื•ืก ืงื•ื“ ืฉืชื•ืžืš ื‘ื–ื”. 2. ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื”ื‘ื—ื™ืจื” ื‘ืืงืกื™ื•ืก ืœื ื›ื–ืืช ื—ืฉื•ื‘ื”, ื•ืืคืฉืจ ืœืขืจื’ืŸ ืžื—ื“ืฉ ืืช ื”ืงื•ื“ ืขื Fetch API ืื• ืกืคืจื™ื” ืื—ืจืช. 3. ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉืืคืฉืจ ืœืขื“ื›ืŸ ืืช ืงื•ื“ ืฆื“ ื”ืฉืจืช ืื• ืœื”ื•ืกื™ืฃ ืคืจื•ืงืกื™, ื›ื“ื™ ืœื‘ื˜ืœ ืืช ื”ืฆื•ืจืš ื‘ื”ื’ื‘ืœืช ืžืกืคืจ ื” Redirects. ืื• ื‘ืžืงืจื” ืฉืœ ื’'ืกื˜, ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื™ืช ื‘ื“ื™ืงื” ืื—ืจืช; ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉืืคืฉืจ ืœื”ืคืขื™ืœ eject ืื• ืœื•ื•ืชืจ ืขืœ create-react-app ืœื—ืœื•ื˜ื™ืŸ. "ื‘ื•ื ื ื“ื‘ืจ ืขืœ ื–ื”" ื”ื•ื ืชืžื™ื“ ืื•ืคืฆื™ื” ื˜ื•ื‘ื” ื™ื•ืชืจ ืž"ืื™ ืืคืฉืจ". ื•ื’ื ืื ื‘ืกื•ืฃ ืžื—ืœื™ื˜ื™ื ืœื•ื•ืชืจ ืขืœ ื”ืคื™ืฆ'ืจ ืื• ื”ืชื™ืงื•ืŸ, ื›ื•ืœื ื™ื•ืฆืื™ื ืขื ื”ืจื’ืฉื” ื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ื”.

ToCode
1 419
# ืœื ืžื›ื™ืจ ืืช ื”ื›ืœืœื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืงืœ ืœืœืžื•ื“ ืืช ื”ืคื™ืจื•ืฉ ืฉืœ ืžื™ืœื” ื—ื“ืฉื” ื‘ืฉืคื” ื”ืขื‘ืจื™ืช ืžืืฉืจ ืžื™ืœื” ื—ื“ืฉื” ื‘ืฉืคื” ื–ืจื” ืฉืืฃ ืคืขื ืœื ืฉืžืขืชื. ื”ืžื™ืœื” ืื• ื”ื‘ื™ื˜ื•ื™ ื”ื—ื“ืฉ ื‘ืขื‘ืจื™ืช ื›ืžืขื˜ ืืฃ ืคืขื ืœื ื™ื”ื™ื• ื—ื“ืฉื™ื ืœื’ืžืจื™. ื‘ืชื•ืจ ื“ื•ื‘ืจื™ ืฉืคืช ืื ืฉืœ ื”ืฉืคื” ื™ืฉ ืกื™ื›ื•ื™ ื˜ื•ื‘ ืฉื›ื‘ืจ ื ืชืงืœืชื ื‘ืžื™ืœื” ื”ื–ืืช ืื™ืคืฉื”ื•, ื•ื’ื ืื ืœื ืื– ื‘ื˜ื•ื— ื ืชืงืœืชื ื‘ื”ืฉืคืขื” ืฉืœื” ืื• ื‘ืžื™ืœื™ื ื“ื•ืžื•ืช ืœื”. ื•ื’ื ื”ื”ื™ืคืš ื ื›ื•ืŸ - ื”ืงืฉื‘ื” ืœืžื™ืœื” ื‘ืฉืคื” ื—ื“ืฉื” ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžืื•ื“ ืžืชืกื›ืœืช, ื›ื™ ืื ื™ ืืคื™ืœื• ืœื ื™ื•ื“ืข ืœืื™ื–ื” ืฆืœื™ืœื™ื ืฆืจื™ืš ืœืฉื™ื ืœื‘, ื•ืœื›ืŸ ื›ืฉืื ื™ ืื ืกื” ืœื—ื–ื•ืจ ืขืœ ื”ืžื™ืœื” ื‘ืงื•ืœ ืจื ืชืฆื ืœื™ ื‘ื›ืœืœ ืžื™ืœื” ืื—ืจืช. ื•ืื™ืš ืืคืฉืจ ืœื–ื›ื•ืจ ืžื™ืœื” ืฉืืชื” ืืคื™ืœื• ืœื ืžืฆืœื™ื— ืœื”ื’ื™ื“ ืื•ืชื”? ื—ื•ืกืจ ื”ื™ื›ืจื•ืช ืขื ื”ื›ืœืœื™ื ื”ื•ื ืžื”ื’ื•ืจืžื™ื ื”ืžืจื›ื–ื™ื™ื ืœืชืกื›ื•ืœ ื‘ืชื”ืœื™ืš ื”ืœืžื™ื“ื”. ืื ื—ื ื• ืฉื•ืžืขื™ื ื”ืกื‘ืจ, ื‘ื˜ื•ื—ื™ื ืฉืื ื—ื ื• ืžื‘ื™ื ื™ื ืžื” ื”ื™ื” ื‘ื• ื•ืื– ื‘ืื™ื ืœื™ื™ืฉื ืืช ื–ื” ื•ื›ืœื•ื ืœื ืขื•ื‘ื“. ืื ื™ ืžื ืกื” ืœืฉืื•ืœ ืฉืืœื” ื•ืื ืฉื™ื ืืคื™ืœื• ืœื ืžื‘ื™ื ื™ื ืžื” ืื ื™ ืฉื•ืืœ. ื•ื›ื›ื” ื‘ืŸ ืื“ื ื™ื›ื•ืœ ืœืฉืื•ืœ ื‘ืคื•ืจื•ื "ื‘ืฉื‘ื™ืœ ืžื” ื‘ื›ืœืœ ืฆืจื™ืš ืคืจืžื˜ืจื™ื ืœืคื•ื ืงืฆื™ื” ืื ืื ื™ ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื™ื ื’ืœื•ื‘ืืœื™ื™ื", ื•ืืชื” ืืคื™ืœื• ืœื ื™ื•ื“ืข ืื™ืš ืœื”ืชื—ื™ืœ ืœืขื ื•ืช ืขืœ ื–ื”. ื•ื›ื ืจืื” ื’ื ื—ืœืง ืžื”ืฉืืœื•ืช ืฉืœื™ ื ืฉืžืขื•ืช ื›ื›ื” ื‘ื ื•ืฉืื™ื ืฉืื ื™ ื—ื“ืฉ ื‘ื”ื. ื“ืจืš ืื—ืช ืœื”ืชื’ื‘ืจ ืขืœ ื”ืชืกื›ื•ืœ ื”ื™ื ืœื”ื›ื™ืจ ื‘ืคืขืจ ื•ืœื—ืงื•ืจ ืื•ืชื•. ืœื”ื‘ื™ืŸ ืฉื™ื™ืงื— ืœื™ ืขื•ื“ ื–ืžืŸ ืขื“ ืฉืืฆืœื™ื— ื‘ื›ืœืœ ืœืฉืื•ืœ ืืช ื”ืฉืืœื•ืช ื”ื ื›ื•ื ื•ืช, ื•ื‘ื™ื ืชื™ื™ื ืขื“ื™ืฃ ืœื›ืชื•ื‘ ืงื•ื“ ื•ืœืงืจื•ื ืงื•ื“ ืฉืœ ืื—ืจื™ื ืจืง ื‘ืฉื‘ื™ืœ ืœื—ื™ื•ืช ื‘ืชื•ืš ื”ืฉืคื” ื•ืœื’ื‘ืฉ ืืช ื”ืžื•ืฉื’ื™ื. ืœื”ืกืชื›ืœ ืžื” ืื—ืจื™ื ืฉื•ืืœื™ื ื‘ืคื•ืจื•ืžื™ื ื•ืžื” ืขื•ื ื™ื ืœื”ื, ื•ืœืชืช ืœื–ื” ื–ืžืŸ. ืจืง ืื—ืจื™ ืฉืžืฆืœื™ื—ื™ื ืœืฉืžื•ืข ืืช ื”ืžื™ืœื™ื ืืคืฉืจ ืœื”ืชื—ื™ืœ ืœื—ืคืฉ ืืช ื”ืžืฉืžืขื•ืช.

ToCode
1 419
# ืื™ืš ืœืกื ืŸ ืžืขืจืš ืขื ื’ื•ื“ืœ ืชื•ืฆืื” ืžืงืกื™ืžืœื™ ื‘ JavaScript ื”ืคื•ื ืงืฆื™ื” filter ืฉืœ JavaScript ื™ื•ื“ืขืช ืœืกื ืŸ ืžืขืจืš ืœืคื™ ืชื ืื™ ืžืกื•ื™ื. ืื‘ืœ ืžื” ืงื•ืจื” ืื ืืชื ืจื•ืฆื™ื ืœื”ื’ื‘ื™ืœ ืืช ืžืกืคืจ ื”ืชื•ืฆืื•ืช ืฉ filter ืชื—ื–ื™ืจ? ื”ื ื” ื“ื•ื’ืžื” ืงื˜ื ื” ื•ื”ืฆืขื” ืœืคื™ืชืจื•ืŸ- ## ื”ืงื•ื“ ืฉืœ popular-english-wods ื‘ืงื•ื“ ืฉืœ popular-english-words, ื‘ื” ื”ืฉืชืžืฉืชื™ ืœืคื ื™ ื›ืžื” ื™ืžื™ื ื›ื“ื™ ืœื›ืชื•ื‘ ื—ื™ืงื•ื™ ืœื•ื•ืจื“ืœ, ืžืฆืืชื™ ืืช ื”ืคื•ื ืงืฆื™ื” ื”ื‘ืื”:
getMostPopularFilter(count, test) {
    var result = []
    list.every(word => {
        if (test(word)) {
            result.push(word)
        }
        if (result.length == count) return false
        return true
    })
    return result
}
ืžื˜ืจืช ื”ืคื•ื ืงืฆื™ื” ืœืงื—ืช ืžืขืจืš ืฉืœ ืžื™ืœื™ื ืžื”ืžืฉืชื ื” list, ืœืกื ืŸ ืžืžื ื• ืจืง ืžื™ืœื™ื ืฉืžืชืื™ืžื•ืช ืœืชื ืื™ ืžืกื•ื™ื ืฉืžืชืงื‘ืœ ื‘ืคืจืžื˜ืจ test ื•ืœื”ื—ื–ื™ืจ ืœื ื™ื•ืชืจ ืž count ืžื™ืœื™ื ืฉืžืชืื™ืžื•ืช ืœืชื ืื™. ื”ืคื•ื ืงืฆื™ื” ืขื•ื‘ื“ืช ืื‘ืœ ืงืจื™ืื” ืฉืœื” ืžืฉืื™ืจื” ื˜ืขื ืจืข ื‘ืคื”. ื‘ืžื‘ื˜ ืจืืฉื•ืŸ ื–ื” ืžืจื’ื™ืฉ ื›ืื™ืœื• ืืคืฉืจ ื”ื™ื” ืœืกื’ื•ืจ ืืช ื–ื” ื‘ืฉื•ืจื” ืื—ืช ืขื filter. ืื‘ืœ ื‘ืžื‘ื˜ ืžืขืžื™ืง ื™ื•ืชืจ ืื ื—ื ื• ืžื‘ื™ื ื™ื ืฉ Array.prototype.filter ืœื ื‘ืืžืช ื”ื™ื” ืขื•ื–ืจ ืœื ื• ื›ืืŸ, ื‘ื’ืœืœ ืžื’ื‘ืœืช ื”ืื•ืจืš. ืื ื”ื™ื™ืชื™ ืžื ืกื” ืœืฉื›ืชื‘ ืืช ื–ื” ืœื”ืฉืชืžืฉ ื‘ืคื™ืœื˜ืจ ื”ืงื•ื“ ื”ื™ื” ื ืจืื” ื›ืš:
return list.filter(test).slice(0, count);
ื”ืจื‘ื” ื™ื•ืชืจ ื™ืคื” ืžื”ื’ื™ืจืกื” ื”ืžืงื•ืจื™ืช, ืื‘ืœ ื’ื ื”ืจื‘ื” ืคื—ื•ืช ื™ืขื™ืœ. ื‘ื’ืœืœ ืฉื”ื—ื™ืชื•ืš ื ืขืฉื” ืื—ืจื™ ื”ืกื™ื ื•ืŸ, ืื– ื‘ืจืฉื™ืžืช ืžื™ืœื™ื ื’ื“ื•ืœื” ื”ืงื•ื“ ื™ืขืฉื” ื”ืจื‘ื” ืขื‘ื•ื“ื” ืžื™ื•ืชืจืช. ## ืื ืจืง ื”ื™ื• ืœื ื• Generators ... ื’'ื ืจื˜ื•ืจ ื”ื•ื ื“ืจืš ืœื™ื™ืฆื’ ืกื™ื“ืจื” ืฉืœ ืขืจื›ื™ื ื‘ืœื™ ืœื—ืฉื‘ ืื•ืชื. ืชื—ืฉื‘ื• ืขืœ ื“ืฃ ื”ื•ืจืื•ืช ืฉืœ ืื™ืงืื” ื‘ืžืงื•ื ืืจื•ืŸ ืžื•ืจื›ื‘. ืื ื™ื•ื ืื—ื“ ื ืจืฆื” ืœื”ืจื›ื™ื‘ ืืช ื”ืืจื•ืŸ ื ืœืš ืœืคื™ ื”ื”ื•ืจืื•ืช ื‘ Generator, ืื‘ืœ ื”ืจื‘ื” ื™ื•ืชืจ ื ื•ื— ืœืฉื™ื ื‘ืงื•ืคืกื” ืืช ื”ื—ืœืงื™ื ื•ื“ืฃ ื”ื”ื•ืจืื•ืช ืžืืฉืจ ืืจื•ืŸ ืžื•ืจื›ื‘ ืžืœื. ื‘ JavaScript ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘ Generator ืื ืื•ืกื™ืฃ ื›ื•ื›ื‘ื™ืช ืœืคื ื™ ืฉื ื”ืคื•ื ืงืฆื™ื”. ืคื•ื ืงืฆื™ื” ืจื’ื™ืœื” ืžื—ื–ื™ืจื” ืขืจืš, ื• Generator ืžื—ื–ื™ืจ ืžืฉื”ื• ืฉื™ื•ื“ืข ืœื—ืฉื‘ ืขืจื›ื™ื. ื‘ืชื•ืš ืคื•ื ืงืฆื™ื™ืช ื” Generator ืื ื™ ืžืฉืชืžืฉ ื‘ืžื™ืœื” yield ื›ื“ื™ ืœื”ื—ื–ื™ืจ ืืช ื”ืขืจืš ื”ื‘ื, ื•ื‘ืฉื•ื ืฉืœื‘ ืœื ืฆืจื™ืš ืœื—ืฉื‘ ืžืจืืฉ ืืช ื›ืœ ื”ืขืจื›ื™ื ืฉืœ ื”ืกื™ื“ืจื”. ื‘ื“ื•ื’ืžื” ืฉืœ ืคื™ืœื˜ืจ ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืืช ื” Generator ื”ื‘ื:
function *ifilter(arr, p) {
  for (let x of arr) {
    if (p(x)) {
      yield x;
    }
  }
}
ื”ืœื•ืœืื” for ... of ื™ื•ื“ืขืช ืœืจื•ืฅ ื’ื ืขืœ Generator ื•ื’ื ืขืœ ืžืขืจื›ื™ื ืจื’ื™ืœื™ื. ื”ืคืงื•ื“ื” yield ืื•ืžืจืช ืฉืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื‘ืงืฉ "ืขืจืš ืื—ื“" ืžืชื•ืš ื” Generator, ื•ืื– ื”ืคื•ื ืงืฆื™ื” ืžื—ื–ื™ืจื” ืืช ื”ืขืจืš ื•ื’ื ื–ื•ื›ืจืช ืืช ื”ืžืงื•ื ืฉื‘ื• ื”ืคืกื™ืงื” ืœืจื•ืฅ. ื›ืฉื ื‘ืงืฉ ืืช ื”ืขืจืš ื”ื‘ื ื”ืœื•ืœืื” ืชืžืฉื™ืš ืžืื•ืชื” ื ืงื•ื“ื” ืื—ืจื™ ื” yield ื”ืื—ืจื•ืŸ ืฉืจืฅ. ืื ืื ืกื” ืœื”ืคืขื™ืœ ืงื•ื“ ื›ื–ื”:
const res = ifilter([10, 20, 30], x => x > 10);
console.log(res);
ื”ืชื•ืฆืื” ืœื ืชื”ื™ื” ื”ืžืขืจืš ืฉืœ ื›ืœ ื”ืื™ื‘ืจื™ื ืฉื’ื“ื•ืœื™ื ืž 10, ืืœื:
Object [Generator] {}
ื‘ืฉื‘ื™ืœ ืœื”ืคื•ืš ืืช ื” Generator ืœืžืขืจืš ืื ื™ ืžืฉืชืžืฉ ื‘ Array.prototype.from ื›ืœื•ืžืจ:
const res = ifilter([10, 20, 30], x => x > 10);
console.log(Array.from(res));
ื•ืจืง ื‘ื”ืคืขืœื” ืฉืœ Array.from ื‘ืขืฆื ืžืชื‘ืฆืข ื”ืกื™ื ื•ืŸ. ## ื”ืจื›ื‘ืช Generators ืžื” ืฉื™ืคื” ื‘ Generators ื–ื” ืฉืื ื™ืฉ ืœื™ ื™ื•ืชืจ ืžืื—ื“, ืื ื™ ื™ื›ื•ืœ ืœื—ื‘ืจ ืื•ืชื ื‘ื™ื—ื“ ื•ืœื”ืคื•ืš ืืช ื”ืชื•ืฆืื” ืœืžืขืจืš ืจืง ื‘ืกื•ืฃ. ืื– ื ื›ืชื•ื‘ ื’ื ืืช islice:
function *islice(arr, start, count) {
  for (let i=0; i < start; i++) {
    arr.next();
  }
  for (let i=0; i < count; i++) {
    const { value, done } = arr.next();
    if (done) { return; }
    yield value;
  }
}
ื•ืคื” ื›ื‘ืจ ื™ืฉ ื˜ืจื™ืง ื—ื“ืฉ - ื”ืคื•ื ืงืฆื™ื” next ืฉืœ Generator "ืžื–ื™ื–ื”" ืืช ื”ื’ื ืจื˜ื•ืจ ืื™ื‘ืจ ืื—ื“ ืงื“ื™ืžื” ื‘ืœื™ ืœื”ื—ื–ื™ืจ ืื•ืชื•. ื”ื™ื ืžื—ื–ื™ืจื” ืื•ื‘ื™ืงื˜ ืฉืžื›ื™ืœ ืืช ื”ืžืคืชื— value ืขื ื”ืขืจืš ืฉื”ืชืงื‘ืœ, ื•ื”ืžืคืชื— done ืฉืžืงื‘ืœ true ืื ืื™ืŸ ื™ื•ืชืจ ืขืจื›ื™ื ื‘ื’ื ืจื˜ื•ืจ. ื‘ืฉื‘ื™ืœ ืœืฉืœื‘ ืืช ืฉื ื™ื”ื ื‘ื™ื—ื“ ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘:
return Array.from(
    islice(
        ifilter(list, test),
        0,
        count));
ื•ื–ื” ื›ื‘ืจ ื™ื•ืชืจ ื“ื•ืžื” ืœื’ื™ืจืกืช ื”ืฉื•ืจื” ืื—ืช ืฉืจืฆื™ืชื™ ืœื”ื’ื™ืข ืืœื™ื” ื‘ื”ืชื—ืœื”, ืื‘ืœ ืขื ื”ื‘ื•ื ื•ืก ืฉืœ ื”ื‘ื™ืฆื•ืขื™ื. ื”ื’ื ืจื˜ื•ืจ islice ื™ืขืฆื•ืจ ืื—ืจื™ count ืื™ื‘ืจื™ื ื•ืœื ื™ืžืฉื•ืš ื™ื•ืชืจ ืื™ื‘ืจื™ื ืžื”ื’ื ืจื˜ื•ืจ ifilter, ื•ืœื›ืŸ ifilter ื™ื—ืฉื‘ ืจืง ืืช ื”ืื™ื‘ืจื™ื ืฉื”ื•ื ื‘ืืžืช ืฆืจื™ืš.

ToCode
1 419
# ืขืœ ืฉืœื™ื—ืช ืคืจืžื˜ืจื™ื ื‘ืœื™ Content Type (ื•ืœืžื” ื”ืชืงืœืงืœ ืœื™ ื”ื“ืžื• ื‘ื•ื•ื‘ื™ื ืจ ืืชืžื•ืœ) ื‘ืžื”ืœืš ื•ื•ื‘ื™ื ืจ ืขืœ Next.JS ืฉื”ืขื‘ืจืชื™ ืืชืžื•ืœ ื ื™ืกื™ืชื™ ืœืฉืœื•ื— ื”ื•ื“ืขื” ืœืฉืจืช ืžืชื•ืš curl ืขื ื”ืคืงื•ื“ื” ื”ื‘ืื”:
$ curl -X POST -d hello 'localhost:3000/api/todos'
ืงื•ื“ ืฆื“ ื”ืฉืจืช ืฉืงื™ื‘ืœ ืืช ื”ื”ื•ื“ืขื” ื ืจืื” ื›ืš:
export default function handler(req, res) {
  console.log(`add ${JSON.stringify(req.body)}`);
  addTodo(req.query.text);
  console.log(`todos = ${JSON.stringify(getTodos())}`);
  res.status(200).json({});
}
ื•ื›ืžื• ืฉืงื•ืจื” ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ืฉืžื ืกื™ื ืœืืœืชืจ ื‘ืžื”ืœืš Live Coding ื”ืงื•ื“ ืœื ืขื‘ื“. ื‘ืžืงื•ื ืฉ req.body ื™ื›ื™ืœ ืืช ื”ืžื™ืœื” hello ื›ืžื• ืฉื”ืชื›ื•ื•ื ืชื™ ืฉื™ืงืจื”, ื”ื•ื ื”ื›ื™ืœ ืื•ื‘ื™ืงื˜. ืชื•ืฆืืช ื”ื”ื“ืคืกื” ื”ื™ืชื”:
add {"hello":""}
ื›ืœื•ืžืจ req.body ื”ื›ื™ืœ ืื•ื‘ื™ืงื˜ ืขื ืžืคืชื— ื™ื—ื™ื“ ื‘ืฉื hello ื•ืขืจืš ืจื™ืง. ืžื”? ื‘ื—ื–ืจื” ืœ curl, ื”ืžืชื’ -d ืื•ืžืจ ืฉืžื” ืฉื™ื‘ื•ื ืื—ืจื™ื• ื”ื•ื ื’ื•ืฃ ื”ื”ื•ื“ืขื”, ื•ื”ืžืชื’ -X POST ืื•ืžืจ ืฉืื ื™ ืฉื•ืœื— ื‘ืงืฉื” ืžืกื•ื’ POST. ื‘ืกืš ื”ื›ืœ ื™ืฉ ืœื ื• ื‘ืงืฉืช POST ืฉื’ื•ืฃ ื”ื”ื•ื“ืขื” ืฉืœื” ืžื•ืจื›ื‘ ืžื”ืžื™ืœื” ื”ื‘ื•ื“ื“ืช hello. ืื– ืื™ืš req.body ื”ื’ื™ืข ืœื”ื™ื•ืช ืื•ื‘ื™ืงื˜, ื•ืื™ืš hello ื”ื’ื™ืข ืœื”ื™ื•ืช ื”ืžืคืชื—? ## ื”ื—ืฉื™ื‘ื•ืช ืฉืœ Contet Type ื”ืชืฉื•ื‘ื” ื ืขื•ืฆื” ื‘ืื™ืš ืฉ next.js, ื•ื›ืžื•ื”ื• Web Frameworks ืจื‘ื™ื ื‘ืฆื“ ื”ืฉืจืช, ืžืคืขื ื— ืืช ื’ื•ืฃ ื”ื”ื•ื“ืขื” ืฉืžืงื‘ืœ ื•ื”ื•ืคืš ืื•ืชื• ืžื˜ืงืกื˜ ืคืฉื•ื˜ ืœืชื•ื›ืŸ ืฉืœ req.body. ื‘ืชื™ืขื•ื“ ืฉืœ next ืžืกื‘ื™ืจื™ื ืœื ื• ืฉ req.body ื”ื•ื: > req.body - An object containing the body parsed by content-type, or null if no body was sent ื•ื–ื” ืžืกื‘ื™ืจ ืœืžื” ื‘ืชื•ืš req.body ืœื ืงื™ื‘ืœืชื™ ื‘ื“ื™ื•ืง ืืช ื”ื˜ืงืกื˜ ืฉืื•ืชื• ืฉืœื—ืชื™ ื‘ืชื•ื›ืŸ ื”ื‘ืงืฉื”. ืื•ืชื” ืžื™ืœื”, hello, ืขื•ื‘ืจืช ืคื™ืขื ื•ื— ื•ื”ื•ืคื›ืช ืœืื•ื‘ื™ืงื˜ ืœืคื™ ื›ืœืœื™ ืคื™ืขื ื•ื— ืฉื ืงื‘ืขื™ื ืœืคื™ ื”ื›ื•ืชืจืช content-type. ื‘ื”ืžืฉืš ืื•ืชื• ื“ืฃ ืชื™ืขื•ื“ ืžืกื‘ื™ืจื™ื ืœื ื• ื’ื ืฉื›ืœ ื ืชื™ื‘ API ื™ื›ื•ืœ ืœื™ื™ืฆื ืื•ื‘ื™ืงื˜ ื‘ืฉื config ื‘ืขื–ืจืชื” ืืคืฉืจ ืœื‘ื˜ืœ ืืช ืžื ื’ื ื•ืŸ ืคื™ืขื ื•ื— ื” body ื”ืื•ื˜ื•ืžื˜ื™. ืื‘ืœ ื‘ื™ื˜ื•ืœ ืžื ื’ื ื•ืŸ ื”ืคื™ืขื ื•ื— ื”ืื•ื˜ื•ืžื˜ื™ ืœื ืžืžืฉ ื™ืขื–ื•ืจ ืœื™ ื›ืืŸ. ื‘ืœื™ ืžื ื’ื ื•ืŸ ื–ื” ืื ื™ ืืงื‘ืœ ืืช ื’ื•ืฃ ื”ื”ื•ื“ืขื” ื‘ืชื•ืจ Stream ื•ืืฆื˜ืจืš ืœืงืจื•ื ืงื˜ืขื™ื ืžืžื ื• ื•ืœื—ื‘ืจ ืื•ืชื ื™ื—ื“ ืœื˜ืงืกื˜ ืื—ื“ ืืจื•ืš ื›ืฉื”ื”ื•ื“ืขื” ืžืกืชื™ื™ืžืช, ื•ื—ื‘ืœ ืœื›ืชื•ื‘ ืงื•ื“ ืœืžื ื’ื ื•ืŸ ืฉื›ื‘ืจ ืขื•ื‘ื“ ื‘ืคืจื™ื™ืžื•ื•ืจืง. ื‘ืžืงื•ื ืœื‘ื˜ืœ ืืช ืžื ื’ื ื•ืŸ ื”ืคื™ืขื ื•ื— ืื ื™ ื™ื›ื•ืœ ืœื”ื’ื™ื“ ืœื• ื‘ืฆื•ืจื” ืžื“ื•ื™ืงืช ื™ื•ืชืจ ืžื” ืื ื™ ืจื•ืฆื”. ื”ืขื‘ืจื” ืฉืœ ื”ืžื™ืœื” application/json ื‘ืชื•ืจ content-type ืชื’ืจื•ื ืœืžืคืขื ื— ืœื”ืชื™ื—ืก ืœื’ื•ืฃ ื”ื”ื•ื“ืขื” ื‘ืชื•ืจ JSON Object. ื”ืขื‘ืจื” ืฉืœ ื›ืœ ืžื™ืœื” ืฉื”ื•ื ืœื ืžื›ื™ืจ ื›ืžื• foobar ืื• text ืชื’ืจื•ื ืœืžืคืขื ื— ืœื”ืกืชื›ืœ ืขืœ ื’ื•ืฃ ื”ื”ื•ื“ืขื” ื‘ืชื•ืจ ื˜ืงืกื˜ ื•ืœื”ื—ื–ื™ืจ ื‘ืชื•ืš req.body ืžื—ืจื•ื–ืช ืคืฉื•ื˜ื” ืขื ื”ืชื•ื›ืŸ - ืฉื–ื” ื‘ืขืฆื ืžื” ืฉืจืฆื™ืชื™ ืฉื™ืงืจื”. ื•ื”ืขื‘ืจื” ืฉืœ ื”ืžื™ืœื” application/x-www-form-urlencoded, ืฉื”ื™ื ื’ื ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื›ืœื•ืžืจ ื”ื™ื ืฉื™ื˜ืช ื”ืขื‘ื•ื“ื” ืฉืชื™ื‘ื—ืจ ืื ืœื ื›ืชื‘ืชื™ ืฉื•ื ืขืจืš ืœ content-type, ืชื’ืจื•ื ืœืžืคืขื ื— ืœื”ืคื•ืš ืืช ื’ื•ืฃ ื”ื”ื•ื“ืขื” ืœืื•ืกืฃ ืฉืœ ืคืจืžื˜ืจื™ื ื‘ืคื•ืจืžื˜ ืฉืœ key=value. ืื– ื”ื ื” ื”ืกื™ื›ื•ื ืฉืœ ืฉืœื•ืฉ ืคืงื•ื“ื•ืช curl ืฉืื ื™ ืžืจื™ืฅ ื•ื”ืชื•ืฆืื” ืฉืื ื™ ืžืงื‘ืœ ื‘ req.body ืขื‘ื•ืจ ื›ืœ ืื—ืช:
$ curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d hello 'localhost:3000/api/todos'
# req.body = {"hello":""}

$ curl -X POST -H 'Content-Type: text/plain' -d hello 'localhost:3000/api/todos'
# req.body = "hello"

$ curl -X POST -H 'Content-Type: application/json' -d hello 'localhost:3000/api/todos'
# Error - Invalid JSON
ื—ื•ืฅ ืžื–ื” ืืคืฉืจ ืœืชืคื•ืก ื”ืงืœื˜ื” ืฉืœ ื”ื•ื•ื‘ื™ื ืจ ื‘ืขืจื•ืฅ ื™ื•ื˜ื™ื•ื‘ ืฉืœ ื ื™ืจ (ืžื•ืžืœืฅ ืœื‘ืงืจ ืฉื ื‘ื›ืœ ืžืงืจื”) ื‘ืงื™ืฉื•ืจ https://www.youtube.com/watch?v=OjMqzBWuTl0 ื•ื‘ื™ืžื™ื ื”ืงืจื•ื‘ื™ื ื”ื™ื ื’ื ืชืขืœื” ืคื” ืœืืชืจ ืœืื–ื•ืจ ื”ืงืœื˜ื•ืช ืžื•ื•ื‘ื™ื ืจื™ื.

ToCode
1 419
ื”ื™ ื—ื‘ืจื™ื ืขื•ื“ ื—ืฆื™ ืฉืขื” ื–ื•ื ื™ื—ื“ ืขื ื ื™ืจ ืคืจื™ื–ื™ืืŸ ืขืœ Next.JS, ื•ืคืขื ืจืืฉื•ื ื” ื™ืขื‘ื•ืจ ื’ื ื‘ื™ื•ื˜ื™ื•ื‘ ืœื™ื™ื‘. ืžื•ื–ืžื ื™ื ืœื”ืฆื˜ืจืฃ ืœื–ื•ื ืื• ืœืฆืคื•ืช ื“ืจืš ื”ื™ื•ื˜ื™ื•ื‘ ื›ืืŸ: https://www.youtube.com/watch?v=OjMqzBWuTl0

ToCode
1 419
    </div>
  );
}
ืฆืจื™ืš ืœื”ื’ื™ื“ - ื–ื” ืœื ื”ืžื ื’ื ื•ืŸ ืฉื’'ื•ืฉ ื•ื•ืจื“ืœ ื›ืชื‘. ื‘ืžืฉื—ืง ืฉืœ ื•ื•ืจื“ืœ ื”ื•ื ื™ืฆืจ ืžืงืœื“ืช ื•ื™ืจื˜ื•ืืœื™ืช ืžืฉืœื• ื›ื“ื™ ืฉื™ื•ื›ืœ ืœืกืžืŸ ืขืœื™ื” ืื™ื–ื” ืื•ืชื™ื•ืช ื›ื‘ืจ ื ื™ืกื™ืชื. ืื‘ืœ ื”ื•ื ื’ื ืขืฉื” ืื ื™ืžืฆื™ื•ืช, ืกื™ื ืŸ ื˜ื•ื‘ ื™ื•ืชืจ ืืช ืจืฉื™ืžืช ื”ืžื™ืœื™ื ื•ืžื›ืจ ืืช ื”ืžืฉื—ืง ื‘ืกื›ื•ื ื‘ืŸ 7 ืกืคืจื•ืช. ืคื” ืื ื—ื ื• ื‘ื›ืœ ื–ืืช ืจืง ื›ื•ืชื‘ื™ื ืคื•ืกื˜. ## ืงื•ืžืคื•ื ื ื˜ื” ืจืืฉื™ืช App ื‘ืฉื‘ื™ืœ ืœื—ื‘ืจ ืืช ื”ื›ืœ ื™ื—ื“ ืื ื™ ืžืฉืชืžืฉ ื‘ืงื•ืžืคื•ื ื ื˜ื” ืจืืฉื™ืช ื‘ืฉื App ืฉืžืฆื™ื’ื” ืืช ื” WordInput ืœืžืขืœื” ื•ืื—ืจื™ื• ืืช ื›ืœ ื”ื ื™ื—ื•ืฉื™ื ืฉื”ื™ื•:
export default function App() {
  const [selectedWord, setSelectedWord] = useState(selectRandomWord());
  const [guesses, setGuesses] = useState([]);

  function submit(word) {
    setGuesses([word, ...guesses]);
  }

  return (
    <div className="App">
      <WordInput key={guesses.length} onSubmit={submit} />

      {guesses.map((w, i) => (
        <ReadOnlyWordInput word={w} correctWord={selectedWord} key={i} />
      ))}
    </div>
  );
}
## ืจื’ืข ืจื’ืข, ืžืื™ืคื” ื”ืžื™ืœื™ื? ืฉืžืชื ืœื‘ ืฉ App ืงื•ืจืืช ืœืคื•ื ืงืฆื™ื” selectRandomWord ื›ื“ื™ ืœืงื‘ืœ ืžื™ืœื” ืืงืจืื™ืช. ื‘ื•ืื• ื ืจืื” ืื™ืš ื–ื” ืขื•ื‘ื“:
import _ from "lodash";
import { words } from "popular-english-words";


function selectRandomWord() {
  return _.sample(words.getMostPopularLength(2000, 5));
}
ื”ืกืคืจื™ื” popular-english-words ื‘ npm ื™ื•ื“ืขืช ืœื”ื—ื–ื™ืจ ืจืฉื™ืžื•ืช ืžื™ืœื™ื ื‘ืื ื’ืœื™ืช ื‘ื›ืœ ืื•ืจืš ืฉืœ ืจืฉื™ืžื” ืฉื ืจืฆื” ื•ื‘ื›ืœ ืื•ืจืš ืฉืœ ืžื™ืœื” ืฉื ืจืฆื”. ืื™ืŸ ืฉื ืืช ื”ืžื™ืœื™ื ื”ื›ื™ืคื™ื•ืช ืฉืœ ื’'ื•ืฉ, ืื‘ืœ ื‘ืฉื‘ื™ืœ ื—ื™ืงื•ื™ ื–ื” ืžืกืคื™ืง ื˜ื•ื‘. ืืชื ืžื•ื–ืžื ื™ื ืœื—ื˜ื˜ ื‘ืงื•ื“ ื”ืžืœื ื›ื•ืœืœ ื” CSS ื‘ืงื•ื“ืกื ื“ื‘ื•ืงืก ื‘ืงื™ืฉื•ืจ https://codesandbox.io/s/white-tree-67euq ืื• ืœืžื™ ืžื›ื ืฉืงื•ืจื ืžื”ืืชืจ ื’ื ื‘ื’ื™ืจืกื” ื”ืžื•ื˜ืžืขืช: <iframe src="https://codesandbox.io/embed/white-tree-67euq?fontsize=14&hidenavigation=1&theme=dark" style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;" title="white-tree-67euq" allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts" ></iframe>

ToCode
1 419
# ื‘ื•ืื• ื ื›ืชื•ื‘ ื•ื•ืจื“ืœ ืจืง ื‘ืฉื‘ื™ืœ ืœืื›ื•ืœ ืืช ื”ืœื‘ ื’ืณื•ืฉ ื•ื•ืจื“ืœ ืžื›ืจ ืืช ื”ืžืฉื—ืง ื”ืžืžื›ืจ ืฉื”ื•ื ื›ืชื‘ ืœื ื™ื• ื™ื•ืจืง ื˜ื™ื™ืžืก ื‘ืกื›ื•ื ื‘ืŸ 7 ืกืคืจื•ืช ื•ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื—ื’ื•ื’ ืื™ืชื• ื‘ืืžืฆืขื•ืช ื›ืชื™ื‘ืช ืงืœื•ืŸ ืžื”ื™ืจ ืœืžืฉื—ืง ื‘ืจื™ืืงื˜ ื•ื‘ื“ืจืš ื’ื ืœืœืžื•ื“ ื›ืžื” ื“ื‘ืจื™ื ืขืœ ืžื™ืœื™ื ื•ืžืžืฉืงื™ื. ## ื—ื•ืงื™ ื”ืžืฉื—ืง ืื ื‘ื˜ืขื•ืช ืขื•ื“ ืœื ื™ืฆื ืœื›ื ืœืฉื—ืง, ืื– ื•ื•ืจื“ืœ ื”ื•ื ืžืฉื—ืง ืžื™ืœื™ื ื‘ื• ืฆืจื™ืš ืœื ื—ืฉ ืžื™ืœื” ื‘ืช 5 ืื•ืชื™ื•ืช. ื›ืœ ืคืขื ืฉื ื™ื—ืฉืชื ืื•ืช ื‘ืžืงื•ื ื”ื ื›ื•ืŸ ื”ื™ื ืžืกื•ืžื ืช ื‘ืฆื‘ืข ื™ืจื•ืง, ื›ืœ ืคืขื ืฉื ื™ื—ืฉืชื ืื•ืช ื‘ืžืงื•ื ื”ืœื ื ื›ื•ืŸ ื”ื™ื ืžืกื•ืžื ืช ื‘ืฆื‘ืข ื›ืชื•ื, ื•ืื•ืช ืฉืœื ืฆืจื™ื›ื” ืœื”ื™ื•ืช ื‘ืžื™ืœื” ื ืฉืืจืช ืืคื•ืจื”. ื•ื•ืจื“ืœ ืžืจืื” ืืช ื›ืœ ื”ืžื™ืœื™ื ืฉื ื™ื—ืฉืชื ื›ื‘ืจ ืขื ื”ืื•ืชื™ื•ืช ืœืคื™ ื”ืฆื‘ืขื™ื, ื•ืžืกืคืง ืฉื•ืจื” ืจื™ืงื” ืœื ื™ื—ื•ืฉ ื”ื‘ื. ื‘ืžืฉื—ืง ื”ืžืงื•ืจื™ ืฉืœ ื’'ื•ืฉ ื›ื•ืœื ืžืงื‘ืœื™ื ืืช ืื•ืชื” ืžื™ืœื” (ื”ื™ื ืžืชื—ืœืคืช ื›ืœ ื™ื•ื), ื•ื™ืฉ ื”ื’ื‘ืœื” ืขืœ ืžืกืคืจ ื”ื ื™ื—ื•ืฉื™ื. ืฉื ื™ ืžืืคื™ื™ื ื™ื ืฉืื ื™ ืžื•ื•ืชืจ ืขืœื™ื”ื ื‘ื’ื™ืจืกืช ื”ื—ื™ืงื•ื™ ื›ื“ื™ ืœืฉืžื•ืจ ืขืœ ื”ืงื•ื“ ืคืฉื•ื˜ ื•ื‘ืฆื“ ืœืงื•ื— ื‘ืœื‘ื“. ืื ื™ ืžืžืœื™ืฅ ืœืฉื—ืง ืงืฆืช ื‘ืžืฉื—ืง ื”ืžืงื•ืจื™ ืœืคื ื™ ืฉืžืžืฉื™ื›ื™ื ืœืงืจื•ื ืืช ื”ืคื•ืกื˜. ## ืงื•ืžืคื•ื ื ื˜ืช ืขื–ืจ ReadOnlyWordInput ืงื•ืžืคื•ื ื ื˜ืช ื”ืขื–ืจ ื”ืจืืฉื•ื ื” ืฉื ื›ืชื•ื‘ ืื—ืจืื™ืช ืขืœ ื”ืฆื’ืช ื ื™ื—ื•ืฉ ืฉืœ ืžืฉืชืžืฉ ืขื ืกื™ืžื•ื ื™ ื”ืื•ืชื™ื•ืช ื‘ืฆื‘ืขื™ื. ื”ื™ื ืชืงื‘ืœ ืืช ื”ืžื™ืœื” ืฉื”ืžืฉืชืžืฉ ื ื™ื—ืฉ ื•ืืช ื”ืžื™ืœื” ื”ืกื•ื“ื™ืช ื ื›ื•ื ื” ื‘ืชื•ืจ props, ื•ืชื—ืฉื‘ ืœื›ืœ ืื•ืช ืžื” ื”ืฆื‘ืข ืฉืžืชืื™ื ืœื”. ื‘ืฉื‘ื™ืœ ืœืชืช ืขื™ืฆื•ื‘ ืฉื•ื ื” ืœื›ืœ ืื•ืช ืื ื™ ื›ื•ืชื‘ ื›ืœ ืื•ืช ื‘ div ืžืฉืœื”. ื›ื›ื” ื ืจืื” ื”ืงื•ื“:
function ReadOnlyWordInput(props) {
  const { word, correctWord } = props;

  function classes(letterIndex) {
    let res = "letter";
    if (word.chart(letterIndex) === correctWord.charAt(letterIndex)) {
      res += " correct";
    } else if (correctWord.includes(word.charAt(letterIndex))) {
      res += " misplaced";
    }
    return res;
  }

  return (
    <div>
      {_.range(5).map((i) => (
        <div className={classes(i)} key={i}>
          {word.charAt(i)}
        </div>
      ))}
    </div>
  );
}
ื ืฉื™ื ืœื‘ ืฉื‘ JavaScript ื™ืฉ ืฉืชื™ ื“ืจื›ื™ื ืœืงื‘ืœ ืื•ืช ื‘ืžื—ืจื•ื–ืช ืœืคื™ ืื™ื ื“ืงืก: ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืกื•ื’ืจื™ื™ื ืžืจื•ื‘ืขื™ื ืื• ื‘ืคื•ื ืงืฆื™ื” charAt. ื”ื”ื‘ื“ืœ ื”ื•ื ืฉ charAt ืžื—ื–ื™ืจ ืžื—ืจื•ื–ืช ืจื™ืงื” ืื ื”ืžื—ืจื•ื–ืช ื”ืžืงื•ืจื™ืช ืงืฆืจื” ื™ื•ืชืจ ืžื”ืื™ื ื“ืงืก ืฉื‘ื™ืงืฉืชื (ื‘ืขื•ื“ ืฉืกื•ื’ืจื™ื™ื ืžืจื•ื‘ืขื™ื ืžื—ื–ื™ืจื™ื ืืช ื”ืขืจืš undefined). ## ืงื•ืžืคื•ื ื ื˜ืช ืขื–ืจ WordInput ื”ืงื•ืžืคื•ื ื ื˜ื” ื”ื›ื™ ืžืกื•ื‘ื›ืช ื‘ื“ืžื• ื”ื–ื” ื”ื™ื ืงื•ืžืคื•ื ื ื˜ืช ื”ืขื–ืจ WordInput ืฉืื—ืจืื™ืช ืขืœ ืงืœื™ื˜ืช ื”ืžื™ืœื” ืžื”ืžืฉืชืžืฉ. ื‘ื’ืœืœ ืฉื—ืฉื•ื‘ ืœื ื• ืœื”ืกืชื›ืœ ืขืœ ื”ืžื™ืœื” ื‘ืชื•ืจ ืื•ืกืฃ ืฉืœ ืื•ืชื™ื•ืช ื’ื ืงื•ืžืคื•ื ื ื˜ืช ื”ืงืœื˜ ืžื—ืœืงืช ืืช ื”ืžื™ืœื” ืœืื•ืชื™ื•ืช ื•ืžื™ื™ืฆืจืช ืืœืžื ื˜ input ื ืคืจื“ ืœื›ืœ ืื•ืช. ื‘ืฉื‘ื™ืœ ืฉื–ื” ื™ืขื‘ื•ื“ ื”ื™ื” ืฆืจื™ืš ืœื ื”ืœ ืืช ืžืขื‘ืจ ื”ืคื•ืงื•ืก ื‘ื™ืŸ ืืœืžื ื˜ื™ ื” input ื”ืฉื•ื ื™ื, ื•ื’ื ืœื“ืื•ื’ ืœื–ื” ืฉื›ืœ ืื—ื“ ื™ืขื“ื›ืŸ ืจืง ืืช ื”ืื•ืช ืฉื”ื•ื ืื—ืจืื™ ืขืœื™ื”. ื‘ืฉื‘ื™ืœ ื”ื›ืชื™ื‘ื” ืœืžื—ืจื•ื–ืช ื‘ืžืงื•ื ืฉืžืชืื™ื ืœืื™ื ื“ืงืก ืฉืœ ื” input ืฉืขื›ืฉื™ื• ื ืžืฆืื™ื ืขืœื™ื• ื”ื•ืกืคืชื™ ืคื•ื ืงืฆื™ื™ืช ืขื–ืจ ืงื˜ื ื” ื‘ืฉื replaceAt, ืฉืžืงื‘ืœืช ืื™ื ื“ืงืก ื•ื›ื•ืชื‘ืช ืืœื™ื•:
function replaceAt(str, index, replacement) {
  return (
    str.padEnd(5).substr(0, index) +
    replacement +
    str.substr(index + replacement.length)
  );
}
ืžื—ืจื•ื–ื•ืช ื‘ JavaScript ื”ืŸ Immutable, ื•ืœื›ืŸ "ืœื›ืชื•ื‘" ืœืื™ื ื“ืงืก ื‘ืžื—ืจื•ื–ืช ืื•ืžืจ ืœื™ื™ืฆืจ ืžื—ืจื•ื–ืช ื—ื“ืฉื” ืฉื‘ื” ืจืง ื”ืื•ืช ืฉืืœื™ื” ืื ื—ื ื• ื›ื•ืชื‘ื™ื ืชื”ื™ื” ืฉื•ื ื”. ื”ืฉื™ืžื•ืฉ ื‘ padEnd ืžืชืžื•ื“ื“ ืขื ืžืฆื‘ ืฉืžื ืกื™ื ืœื›ืชื•ื‘ ืœืžื—ืจื•ื–ืช ืงืฆืจื” ื™ื•ืชืจ ืžื”ืื™ื ื“ืงืก ืืœื™ื” ื ื™ืกื™ื ื• ืœื›ืชื•ื‘. ื•ืขื›ืฉื™ื• ืฉื™ืฉ ืœื ื• ืืช ื”ืคื•ื ืงืฆื™ื” ืืคืฉืจ ืœื”ืžืฉื™ืš ืœืงื•ื“ ืฉืœ ื”ืงื•ืžืคื•ื ื ื˜ื” ืขืฆืžื” ืฉื‘ื’ื“ื•ืœ ืžืฆื™ื™ืจืช 5 ืชื™ื‘ื•ืช ืงืœื˜ ื•ืžื ื”ืœืช ืืช ืžืขื‘ืจื™ ื”ืคื•ืงื•ืก ื‘ื™ื ื™ื”ืŸ:
function WordInput(props) {
  const { onSubmit } = props;
  const [word, setWord] = useState("");
  const [letter, setLetter] = useState(0);
  const el = useRef(null);

  useEffect(() => {
    el.current.querySelectorAll(".letter")[letter].focus();
  }, [letter]);

  return (
    <div ref={el}>
      {_.range(5).map((i) => (
        <input
          className="letter"
          key={i}
          onFocus={() => setLetter(i)}
          onKeyDown={(e) => {
            if (e.key === "Enter") {
              // ENTER Key
              return onSubmit(word);
            } else if (e.key === "Backspace") {
              setLetter((l) => Math.max(l - 1, 0));
              setWord((word) => replaceAt(word, i - 1, " "));
            } else if (e.key.match(/^[a-zA-Z]$/)) {
              setWord((word) => replaceAt(word, i, e.key.toLowerCase()));
              setLetter((l) => Math.min(l + 1, 4));
            }
          }}
          value={word.charAt(i)}
          pattern="[a-z]"
        />
      ))}

ToCode
1 419
# ื™ืืžืœ ื”ื•ื ืœื ื—ื‘ืจ ื”ืคื•ืคื•ืœืจื™ื•ืช ืฉืœ ื“ื•ืงืจ ื•ืงื•ื‘ืจื ื˜ื™ืก ื”ื‘ื™ืื” ืœืชื•ื“ืขื” ื”ืฆื™ื‘ื•ืจื™ืช ื’ื ืืช ืคื•ืจืžื˜ ืงื‘ืฆื™ ื”ื”ื’ื“ืจื•ืช yaml, ืฉื–ื” ืงื™ืฆื•ืจ ืœ Yaml Ain't Markup Language (ื‘ื’ื™ืจืกื” ื”ืžืงื•ืจื™ืช ื–ื” ื”ื™ื” yet another markup language). ื™ืืžืœ ื ื•ืขื“ ืœื”ื™ื•ืช ืงืจื™ื ืœื‘ื ื™ ืื“ื ื•ื‘ื’ืœืœ ื–ื” ืžืชื›ื ืชื™ื ืื•ื”ื‘ื™ื ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืงื‘ืฆื™ ืงื•ื ืคื™ื’ื•ืจืฆื™ื”. ื”ื‘ืขื™ื” ื‘ืขื‘ื•ื“ื” ืขื ื™ืืžืœ ืฉื”ื—ื•ืงื™ื ืฉืœื• ื”ืจื‘ื” ื™ื•ืชืจ ืžืกื•ื‘ื›ื™ื ืžื”ืื™ื ื˜ื•ืื™ืฆื™ื” ื•ืœื›ืŸ ื›ืฉืื ืฉื™ื ืฉืœื ืžื›ื™ืจื™ื ืืช ื”ื—ื•ืงื™ื ืžืชื—ื™ืœื™ื ืœื›ืชื•ื‘ ืงืœ ืœื™ืคื•ืœ ืœื‘ื•ืจื•ืช. ื”ื ื” ื“ื•ื’ืžื” ืื—ืช ืœื‘ื•ืจ ื›ื–ื” ืฉืคื’ืฉืชื™ ืœืื—ืจื•ื ื” - ื”ืงื•ื“ ื”ื‘ื ื‘ docker-compose.yml ืžืคืขื™ืœ ubuntu ืฉื™ื“ืคื™ืก ืืช ื”ื˜ืงืกื˜ yes we can:
version: "3.9"

services:
  app:
    image: ubuntu
    command: bash -c "echo $$text"
    environment:
      text: yes we can
ืื‘ืœ ืื ื ืฉื ื” ืืช ื”ื˜ืงืกื˜ ื•ื ื™ืฉืืจ ืจืง ืขื ื”ืžื™ืœื” yes:
version: "3.9"

services:
  app:
    image: ubuntu
    command: bash -c "echo $$text"
    environment:
      text: yes
ืื– ื”ืคืœื˜ ืžืฉืชื ื” ื‘ื”ืชืืžื” ื•ื”ื•ืคืš ืœืžื™ืœื” ื”ื‘ื•ื“ื“ืช true. ื”ืกื™ื‘ื” ืœืฉื™ื ื•ื™ ื”ื™ื ืฉืœืžืจื•ืช ืฉืื™ืŸ ื—ื•ื‘ื” ืœื”ืฉืชืžืฉ ื‘ืžืจื›ืื•ืช ืกื‘ื™ื‘ ืžื—ืจื•ื–ื•ืช ื‘ื™ืืžืœ, ื‘ื›ืชื™ื‘ื” ื‘ืœื™ ืžืจื›ืื•ืช ื”ืงื•ื“ ืฉืžืคืขื ื— ืืช ื”ื™ืืžืœ ืฆืจื™ืš ืœื”ื‘ื™ืŸ ืœื‘ื“ ืžื” ื˜ื™ืคื•ืก ื”ื ืชื•ื ื™ื ืฉืœ ื”ืขืจืš. ื‘ืžืคืชื— image ื”ืขืจืš ubuntu ื™ื”ื™ื” ืžื—ืจื•ื–ืช, ื•ื’ื ื”ืขืจืš ืฉืœ ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” ื”ื™ื” ืžื—ืจื•ื–ืช ื›ืฉื”ื•ื ื”ื—ื–ื™ืง ืืช ื”ื˜ืงืกื˜ yes we can. ืื‘ืœ, ื”ืžื™ืœื” yes ืžืคื•ืขื ื—ืช ื‘ืชื•ืจ ืขืจืš ื‘ื•ืœื™ืื ื™ ื•ืœื›ืŸ ืžื•ืžืจืช ืœืขืจืš ื”ื‘ื•ืœื™ืื ื™ true. ื”ืกืงืจื ื™ื ืฉื‘ื™ื ื™ื›ื ื™ื›ื•ืœื™ื ืœืžืฆื•ื ืืช ืžืกืžืš ื”ื›ืœืœื™ื ื”ืžืœื ืฉืœ ื™ืืžืœ ื‘ืงื™ืฉื•ืจ: https://yaml.org/spec/1.2.2/, ืื‘ืœ ืื ื™ ืœื ื‘ื˜ื•ื— ืฉื”ืงืจื™ืื” ื‘ื• ืชืขืฉื” ืœื›ื ื—ืฉืง ืœื›ืชื•ื‘ ื™ื•ืชืจ ื™ืืžืœื™ื.

ToCode
1 419
<p style="font-size: 13px; color: #717074; font-family: Helvetica,Arial,sans-serif;"><img class="xmprfx_center xmprfx_fixedwidth" style="text-decoration: none; max-width: 292px; height: auto; width: 100%; display: block; border: 0px; margin-left: auto; margin-right: auto;" src="https://tbcdn.talentbrew.com/company/1706/v1_0/img/map-world-large.png" alt="" width="292" align="center" border="0" /></p>
<p style="font-size: 13px; color: #717074; font-family: Helvetica, Arial, sans-serif; text-align: center;"><img class="xmprfx_center xmprfx_fixedwidth" style="text-decoration: none; max-width: 130px; height: auto; width: 100%; border: 0px;" src="https://www.freeiconspng.com/uploads/dhl-icon-12.png" alt="" width="130" align="center" border="0" /></p>
<center style="font-size: 15px; line-height: 1.4;"></center>



--b1_290fd56e329304789de69abf5b9ed389--
ืื ื™ ืขื•ื‘ืจ ืฉื•ืจื” ืฉื•ืจื” ืขืœ ื”ื“ื‘ืจื™ื ื”ื›ื™ ื—ืฉื•ื“ื™ื. ื›ื‘ืจ ื‘ืฉื•ืจื” ื”ืจืืฉื•ื ื” ืื ื—ื ื• ืจื•ืื™ื ื›ื•ืชืจืช ืฉืžืชื™ื—ืกืช ืœื“ื•ืžื™ื™ืŸ ื‘ื”ื•ื ื’ืจื™ื”:
Return-Path: <support@letoltokozpont.silverpc.hu>
ื•ื–ื” ืžืžืฉื™ืš ืขื:
X-Spam-source: IP='84.21.7.29', Host='noreverse', Country='HU', FromHeader='hu',
  MailFrom='hu'
ืื™ืŸ ืกื™ื‘ื” ืฉื“ื•ืืจ ื™ืฉืจืืœ ื™ืฉืœื—ื• ืžื™ื™ืœ ื“ืจืš ืฉืจืช ื‘ื”ื•ื ื’ืจื™ื”. ืื—ืจื™ ื–ื” ื™ืฉ ื›ืžื” ื“ื‘ืจื™ื ืฉืื ื™ ืœื ืžื‘ื™ืŸ ื•ืื– ืื ื™ ืžื’ื™ืข ืœ:
Authentication-Results: mx1.messagingengine.com;
    dkim=invalid (public key: not available, 0-bit  key sha256)
ืืช dkim ืื ื™ ืžื›ื™ืจ. ื–ื” ืžื ื’ื ื•ืŸ ืฉืžืืคืฉืจ ืœืžืขืจื›ื•ืช ืฉืฉื•ืœื—ื•ืช ื“ื•ืืจ ืืœืงื˜ืจื•ื ื™ ืœื•ื•ื“ื ืฉื”ื“ื•ืืจ ืื›ืŸ ื”ื’ื™ืข ืžื”ื“ื•ืžื™ื™ืŸ ืฉืžืžื ื• ื”ื•ื ื˜ื•ืขืŸ ืฉื”ื•ื ื”ื’ื™ืข, ื‘ืžืงื•ื ืœื“ื•ื’ืžื” ืฉืžื™ืฉื”ื• ืกืชื ื”ืฉืื™ืจ ืžืขื˜ืคื” ืขืœ ื”ืฉืจืช ื•ืงื™ื•ื•ื” ืœื˜ื•ื‘. ื”ื•ื ืขื•ืฉื” ืืช ื–ื” ื‘ืืžืฆืขื•ืช ืฉื™ืžื•ืฉ ื‘ื—ืชื™ืžื” ื“ื™ื’ื™ื˜ืœื™ืช ื•ื”ืื™ืžื•ืช ืฉืœื• ื“ื•ืจืฉ ื‘ื“ื™ืงื” ืฉืœ ืžืคืชื— ืฆื™ื‘ื•ืจื™ ืฉืจืฉื•ื ื‘ื“ื•ืžื™ื™ืŸ ืฉืžืžื ื• ื›ื‘ื™ื›ื•ืœ ื”ืžื™ื™ืœ ื ืฉืœื—. ืชืฉื•ื• ืืช ื–ื” ืœ dkim ื‘ื”ื•ื“ืขื” ืืžื™ืชื™ืช ืžื“ื•ืืจ ื™ืฉืจืืœ:
Authentication-Results: mx.google.com;
       dkim=pass header.i=@postil.com header.s=post1 header.b="PTXUV/e6";
       spf=pass (google.com: domain of noreply@postil.com designates 68.232.156.189 as permitted sender) 
ื•ืงืœ ืœืจืื•ืช ืืช ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื” invalid ื‘ื“ื•ืืจ ื”ืžื–ื•ื™ืฃ ืœื‘ื™ืŸ ืื™ืฉื•ืจ ื”ื“ื•ืžื™ื™ืŸ ืขื ื”ืกื™ื•ืžืช postil.com ื‘ื“ื•ืืจ ื”ืืžื™ืชื™. ืื ื™ ืžืงื•ื•ื” ืฉื ืชืชื™ ืœื›ื ื›ืืŸ ืžืกืคืจ ื›ืœื™ื ืœื–ื”ื•ืช ื“ื•ืืจ ืžื–ื•ื™ืฃ ื•ืจืžืื•ื™ื•ืช ืจืฉืช. ืฆืจื™ืš ืœื”ื’ื™ื“ - ื”ืจื‘ื” ืจืžืื•ื™ื•ืช ืจืฉืช ืฉื ื™ืชืงืœ ื‘ื”ืŸ ื™ื”ื™ื• ืžืชื•ื—ื›ืžื•ืช ื‘ื”ืจื‘ื” ืžื”ื“ื•ื’ืžื” ืคื” ื‘ืคื•ืกื˜. ื”ื“ื‘ืจ ืฉื”ื›ื™ ื™ื•ืฆืจ ืืžื•ืŸ ื‘ืจืžืื•ื™ื•ืช ืจืฉืช ื–ื” ืคืจื˜ื™ื ืžื–ื”ื™ื, ื•ื–ืืช ืœื“ืขืชื™ ื”ื—ืฉื™ื‘ื•ืช ืฉืœ ืฉืžื™ืจื” ืขืœ ืคืจื˜ื™ื•ืช ื‘ืจืฉืช: ื›ื›ืœ ืฉืœืชื•ืงืคื™ื ื™ืฉ ื™ื•ืชืจ ืคืจื˜ื™ื ืžื–ื”ื™ื ืขืœื™ื ื•, ื›ืš ื™ื”ื™ื” ืœื”ื ื™ื•ืชืจ ืงืœ ืœืฉืœื•ื— ื”ื•ื“ืขื•ืช ืžื˜ื•ืจื’ื˜ื•ืช ืฉื™ื’ืจืžื• ืœื ื• ืœื”ืืžื™ืŸ ืœืžืกืจ ื•ื‘ืืžืช ืœืฉืœื ืœืื•ืชื• ื ื•ื›ืœ. ื‘ื“ื•ื’ืžื” ืฉืœื ื• ืื ื”ื”ื•ื“ืขื” ื”ื™ืชื” ื‘ืขื‘ืจื™ืช ืชืงื™ื ื”, ื›ื•ืœืœืช ืžืกืคืจ ืžืฉืœื•ื— ืืžื™ืชื™ ืฉืื ื™ ื‘ืืžืช ืžื—ื›ื” ืœื•, ืžืฆื™ื™ื ืช ืืช ื”ืฉื ืฉืœื™ ื•ื”ื›ืชื•ื‘ืช ืฉืœื™ ื•ืžืชื™ ื”ื–ืžื ืชื™ ืืช ื”ืžื•ืฆืจ, ืื– ื”ื™ื” ื”ืจื‘ื” ื™ื•ืชืจ ืกื™ื›ื•ื™ ืฉื”ื™ื™ืชื™ ื ื•ืคืœ ื‘ืคื— ื”ื–ื”.

ToCode
1 419
    spf=none smtp.mailfrom=support@letoltokozpont.silverpc.hu
      smtp.helo=vps.silverpc.hu
X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgedvvddrgedugdeijecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr
    tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecuogfuuhhsphgvtghtkfhmgh
    ffohhmrghinhculdeftddmnecujfgurhepvffufffhkfggtgfgsegrkehjphdttdejnecu
    hfhrohhmpefkshhrrggvlhcuphhoshhtuceoshhuphhpohhrtheslhgvthholhhtohhkoh
    iiphhonhhtrdhsihhlvhgvrhhptgdrhhhuqeenucggtffrrghtthgvrhhnpeekffefkefg
    ieffueehffevtdfgfffggeejkeektdegieejkedttdetgfektdetgeenucffohhmrghinh
    epuhhmrggvnhhtvghrphhrihhsvgdrnhgvthenucfkphepkeegrddvuddrjedrvdelnecu
    vehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepkeegrddvuddrjedrvd
    elpdhhvghlohepvhhpshdrshhilhhvvghrphgtrdhhuhdpmhgrihhlfhhrohhmpeeoshhu
    phhpohhrtheslhgvthholhhtohhkohiiphhonhhtrdhsihhlvhgvrhhptgdrhhhuqe
X-ME-VSScore: 30
X-ME-VSCategory: clean
X-ME-CSA: none
Received-SPF: none
    (letoltokozpont.silverpc.hu: No applicable sender policy available)
    receiver=mx1.messagingengine.com;
    identity=mailfrom;
    envelope-from="support@letoltokozpont.silverpc.hu";
    helo=vps.silverpc.hu;
    client-ip=84.21.7.29
Received: from vps.silverpc.hu (unknown [84.21.7.29])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by mx1.messagingengine.com (Postfix) with ESMTPS
 for <info@tocode.co.il>; Mon, 31 Jan 2022 09:38:30 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=letoltokozpont.silverpc.hu; s=mail;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:From:Date:Subject:To; bh=ZqgTTpzfQAWUD0xYG177cmhdpkV33R1FmY/uaEr5sjo=;
 b=UqLOs+BkYvMc9UVA7H0FX5ZoqnzgFQQCrwpPekZ5vLutmgGcVIz1P2E7QdCvh3QDnEb3A8IwH0KOBN0KAilKkTVJ1cdGK5Po2Mvn/FvyLs0Y+M00nkauVk4LCzzYTtYBbC5NT3hLmUY+W8IAPbIP4+PiqmYzLsYXd5haTh0s93I=;
Received: from admin by vps.silverpc.hu with local (Exim 4.84_2)
 (envelope-from <support@letoltokozpont.silverpc.hu>)
 id 1nEXp6-00032X-W1
 for info@tocode.co.il; Mon, 31 Jan 2022 14:38:29 +0000
To: info@tocode.co.il
Subject: =?UTF-8?B?157XmdeT16Ig157Xp9eV15XXnyDXotecINek16jXmdeY15nXnSDXkNep16gg?=  =?UTF-8?B?16DXqdec15fXlSDXkdeQ157Xptei15XXqiDXk9eV15DXqCDXqdec15nXl9eZ?=  =?UTF-8?B?150=?=
X-PHP-Originating-Script: 1001:leafv4.php
Date: Mon, 31 Jan 2022 14:38:28 +0000
From: Israel post <support@letoltokozpont.silverpc.hu>
Message-ID: <290fd56e329304789de69abf5b9ed389@letoltokozpont.silverpc.hu>
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="b1_290fd56e329304789de69abf5b9ed389"
Content-Transfer-Encoding: 8bit

This is a multi-part message in MIME format.

--b1_290fd56e329304789de69abf5b9ed389
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit


 

ืœื ื ื™ืชืŸ ืœืฉืœื•ื— ืืช ื”ื—ื‘ื™ืœื” ืฉืœืš ื”ื™ื•ื ืขืงื‘ ืขืžืœื•ืช ืฉื—ืจื•ืจ ืžืžื›ืก ื ื•ืกืคื•ืช. ื”ื•ื ื™ื™ืžืกืจ ืžื™ื“ ืขื ืชืฉืœื•ื ื”ืขืœื•ืช (10.56 ืฉืงืœื™ื)
ืœืฉืœื ืขื‘ื•ืจ ื”ื—ื‘ื™ืœื” ืฉืœื™




--b1_290fd56e329304789de69abf5b9ed389
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<p style="text-align: left;"><img class="xmprfx_center xmprfx_fixedwidth" style="text-decoration: none; max-width: 227px; height: auto; width: 100%; display: block; border: 0px; margin-left: auto; margin-right: auto;" src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/DHL_Logo.svg/800px-DHL_Logo.svg.png" alt="" width="227" align="center" border="0" /></p>
<p style="text-align: left;"> </p>
<center style="font-size: 15px; line-height: 1.4;"></center>
<p style="text-align: center;">ืœื ื ื™ืชืŸ ืœืฉืœื•ื— ืืช ื”ื—ื‘ื™ืœื” ืฉืœืš ื”ื™ื•ื ืขืงื‘ ืขืžืœื•ืช ืฉื—ืจื•ืจ ืžืžื›ืก ื ื•ืกืคื•ืช. ื”ื•ื ื™ื™ืžืกืจ ืžื™ื“ ืขื ืชืฉืœื•ื ื”ืขืœื•ืช (10.56 ืฉืงืœื™ื)</p>
<p style="text-align: center;"><a href="https://service.israelpost.co.il.umaenterprise.net/" target="_blank" rel="noopener">ืœืฉืœื ืขื‘ื•ืจ ื”ื—ื‘ื™ืœื” ืฉืœื™</a></p>

ToCode
1 419
 by mailmx.nyi.internal (Postfix) with ESMTP id 4340D66016D
 for <info@tocode.co.il>; Mon, 31 Jan 2022 09:38:32 -0500 (EST)
Received: from mx1.messagingengine.com (localhost [127.0.0.1])
    by mx1.messagingengine.com (Authentication Milter) with ESMTP
    id 1F529134C53;
    Mon, 31 Jan 2022 09:38:32 -0500
ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=fm2; t=
    1643639912; b=gOCji1cbMYdvVrCcU6uWH3CgFFjSAycnvocZ/REheC2jEm05nU
    1Tq5GnMb0m6IPvqLflnrhDVyWgEpPfilzOV4kpd2+sYGFZWNHKcwWb7jGiDUP9R3
    TtpXTpFlX4M4BCgVINCvZgydBP1tui385QfGkYC7S+tTYTaDAPeMHBWbeoablAgS
    BHgkczQ7rSAa2QrtqGx9Y2ig6SI3enogOsQu1m6nEIoFH0KGGH+EU6TK4XSxEmBu
    NU03ZO55q+v+FqX7t7D8FzFb+eMVtg4ZCbkm0SgAENdoyDlv1pj4xH4qJVxwYjWe
    vWnZrjnuAy6A/Ncz+WodfbHCICh7Kp4RqilQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=
    messagingengine.com; h=to:subject:date:from:message-id
    :mime-version:content-type:content-transfer-encoding; s=fm2; t=
    1643639912; bh=ZqgTTpzfQAWUD0xYG177cmhdpkV33R1FmY/uaEr5sjo=; b=P
    oZ9eav23+IDhhisoI3kTgvB4AKv3jdgn1cradnh+s4GBkeBSEVpb6WYaqP9OVr9S
    y7FirUot7b8VepI3jza/1jngMe4ZxIT4wsq1yW/kdK6mvq9La3VLH/Bhfnr0H43b
    T7e36HoQPWzG12AhEdRif3L7SnILgVEq+mex9ODOdu08P+b0VyK06mf0DfYyd2PJ
    WOe8177RG5NeIoiHc8mtH1cMwzbs/VtpLaDTvQMCE2mety76iIQkpzrVTuhP56wW
    /CN3UYkE9E3fr9ywBzQMQb/8WsH7WNXgS8do9R3TrUlytH/rG+hME6EcZ4x/KDzx
    2blgfCqkeQs0LVFjjK9Yw==
ARC-Authentication-Results: i=1; mx1.messagingengine.com;
    x-csa=none;
    x-me-sender=none;
    x-ptr=fail smtp.helo=vps.silverpc.hu policy.ptr="";
    bimi=skipped (DMARC did not pass);
    arc=none (no signatures found);
    dkim=invalid (public key: not available, 0-bit  key sha256)
    header.d=letoltokozpont.silverpc.hu
    header.i=@letoltokozpont.silverpc.hu header.b=UqLOs+Bk
    header.a=-sha256 header.s=mail x-bits=0;
    dmarc=none policy.published-domain-policy=none
    policy.applied-disposition=none policy.evaluated-disposition=none
    (p=none,d=none,d.eval=none) policy.policy-from=p
    header.from=letoltokozpont.silverpc.hu;
    iprev=fail smtp.remote-ip=84.21.7.29
    (Error NXDOMAIN looking up 84.21.7.29 PTR,NOT FOUND);
    spf=none smtp.mailfrom=support@letoltokozpont.silverpc.hu
    smtp.helo=vps.silverpc.hu
X-ME-Authentication-Results: mx1.messagingengine.com;
    x-aligned-from=pass (Address match);
    x-return-mx=warn header.domain=letoltokozpont.silverpc.hu
      policy.org_domain=silverpc.hu policy.is_org=no policy.mx_error=NOERROR
      (A Records found: 172.67.175.58,104.21.31.64)
      (AAAA Records found: 2606:4700:3035:0:0:0:6815:1f40,2606:4700:3035:0:0:0:ac43:af3a);
    x-return-mx=warn smtp.domain=letoltokozpont.silverpc.hu
      policy.org_domain=silverpc.hu policy.is_org=no policy.mx_error=NOERROR
      (A Records found: 172.67.175.58,104.21.31.64)
      (AAAA Records found: 2606:4700:3035:0:0:0:ac43:af3a,2606:4700:3035:0:0:0:6815:1f40);
    x-tls=pass smtp.version=TLSv1.2 smtp.cipher=ECDHE-RSA-AES256-GCM-SHA384
      smtp.bits=256/256;
    x-vs=clean score=30 state=0
Authentication-Results: mx1.messagingengine.com;
    x-csa=none;
    x-me-sender=none;
    x-ptr=fail smtp.helo=vps.silverpc.hu policy.ptr=""
Authentication-Results: mx1.messagingengine.com;
    bimi=skipped (DMARC did not pass)
Authentication-Results: mx1.messagingengine.com;
    arc=none (no signatures found)
Authentication-Results: mx1.messagingengine.com;
    dkim=invalid (public key: not available, 0-bit  key sha256)
      header.d=letoltokozpont.silverpc.hu
      header.i=@letoltokozpont.silverpc.hu header.b=UqLOs+Bk
      header.a=-sha256 header.s=mail x-bits=0;
    dmarc=none policy.published-domain-policy=none
      policy.applied-disposition=none policy.evaluated-disposition=none
      (p=none,d=none,d.eval=none) policy.policy-from=p
      header.from=letoltokozpont.silverpc.hu;
    iprev=fail smtp.remote-ip=84.21.7.29
      (Error NXDOMAIN looking up 84.21.7.29 PTR,NOT FOUND);

ToCode
1 419
# ืคื™ืฉื™ื ื’ ืคื™ืฉื™ื ื’ ืคื™ืฉื™ื ื’ ื”ืžื™ื™ืœ ื”ื–ื” ื”ื’ื™ืข ื”ื™ื•ื- ื›ื•ืชืจืช: ืžื™ื“ืข ืžืงื•ื•ืŸ ืขืœ ืคืจื™ื˜ื™ื ืืฉืจ ื ืฉืœื—ื• ื‘ืืžืฆืขื•ืช ื“ื•ืืจ ืฉืœื™ื—ื™ื ืชื•ื›ืŸ ื”ืžื™ื™ืœ: ืœื ื ื™ืชืŸ ืœืฉืœื•ื— ืืช ื”ื—ื‘ื™ืœื” ืฉืœืš ื”ื™ื•ื ืขืงื‘ ืขืžืœื•ืช ืฉื—ืจื•ืจ ืžืžื›ืก ื ื•ืกืคื•ืช. ื”ื•ื ื™ื™ืžืกืจ ืžื™ื“ ืขื ืชืฉืœื•ื ื”ืขืœื•ืช (10.56 ืฉืงืœื™ื). ื•ืื– ื”ื™ื” ืœื™ื ืง ืœืชืฉืœื•ื ืขื‘ื•ืจ ื”ื—ื‘ื™ืœื” ืฉืœื™. ื‘ื•ืื• ื ื“ื‘ืจ ืขืœื™ื•. ## ืงื•ื“ื ืžื” ืฉืงื•ืคืฅ ืœืขื™ืŸ ืกื™ืžืŸ ื—ืฉื•ื“ ืจืืฉื•ืŸ ื”ื•ื ืฉื”ืžื™ื™ืœ ืžื’ื™ืข ื‘ืœื™ ืฉื•ื ืคื ื™ื” ืื™ืฉื™ืช: ื”ื•ื ืœื ืื•ืžืจ ืœื™ ืื™ื–ื• ื—ื‘ื™ืœื”, ืœืžื™ ืžื™ื•ืขื“ืช, ืžื” ืžืกืคืจ ืžืฉืœื•ื— ื•ื›ืŸ ื”ืœืื”. ืกื™ืžืŸ ื—ืฉื•ื“ ืฉื ื™ ื”ื•ื ืฉื’ื™ืื•ืช ื”ื“ืงื“ื•ืง. ื—ื‘ื™ืœื” ื‘ืขื‘ืจื™ืช ื”ื™ื ื ืงื‘ื”. ืกื™ืžืŸ ื—ืฉื•ื“ ืฉืœื™ืฉื™ ื”ื•ื ื›ืชื•ื‘ื•ืช ื”"ืžืืช" ื•"ืืœ", ื”ื“ื•ืืจ ื”ื’ื™ืข ืžืืช support@letoltokozpont.silverpc.hu ืฉืœื ื ืจืื” ื‘ื›ืœืœ ื›ืžื• ื›ืชื•ื‘ืช ืฉืœ ื”ื“ื•ืืจ, ื•ื™ื•ืขื“ ืœื›ืชื•ื‘ืช ืื™ืžื™ื™ืœ ืฉืœื™ ืฉืื ื™ ืœื ืžืฉืชืžืฉ ื‘ื” ืœื”ื–ืžื ืช ืžืฉืœื•ื—ื™ื. ืฉื™ืžื• ืœื‘ ืฉื‘ื’'ื™ืžื™ื™ืœ ืืชื ื™ื›ื•ืœื™ื ืœื”ื•ืกื™ืฃ ืกื™ืžืŸ ืคืœื•ืก ื•ืื—ืจื™ื• ืžืกืคืจ ื•ืื– ืืชื ืžืงื‘ืœื™ื ื›ืชื•ื‘ืช ืื—ืจืช ืฉืžื’ื™ืขื” ืœืื•ืชื” ืชื™ื‘ื”, ื›ืœื•ืžืจ ื›ืœ ื”ื›ืชื•ื‘ื•ืช ื”ืืœื”:
foo@gmail.com
foo+1@gmail.com
foo+2@gmail.com
foo+3@gmail.com
foo+4@gmail.com
ื™ื’ื™ืขื• ืœืื•ืชื” ืชื™ื‘ืช ื’'ื™ืžื™ื™ืœ. ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ื–ื” ื›ื“ื™ ืœื–ื”ื•ืช ืฉื™ืจื•ืชื™ื ืžืกื•ื™ืžื™ื ืฉืืชื ื ื™ื’ืฉื™ื ืืœื™ื”ื, ืœืžืฉืœ ืืคืฉืจ ืœื”ื–ืžื™ืŸ ืžืฉืœื•ื—ื™ื ืชืžื™ื“ ืžื”ื›ืชื•ื‘ืช ืฉืžืกืชื™ื™ืžืช ื‘ืžืกืคืจ 17, ื•ืื– ืื ืžื™ืฉื”ื• ืคื•ื ื” ืœื›ืœ ื›ืชื•ื‘ืช ืžื™ื™ืœ ืื—ืจืช ืฉืœื›ื ืืชื ื™ื•ื“ืขื™ื ืฉื”ื•ื ืœื ืžืจืฉื•ืช ื”ื“ื•ืืจ. ## ื“ืฃ ื”ืชืฉืœื•ื ืื ื—ื ื• ื›ื‘ืจ ื“ื™ ื‘ื˜ื•ื—ื™ื ืฉื”ื”ื•ื“ืขื” ืžื–ื•ื™ืคืช ื•ืœื›ืŸ ื–ื” ื”ื–ืžืŸ ืคืฉื•ื˜ ืœืžื—ื•ืง ืื•ืชื”. ื ื›ื•ืŸ, ื™ืฉ ื”ืืงืจื™ื ืžืื•ื“ ืžืชื•ื—ื›ืžื™ื ืฉื™ื›ื•ืœื™ื ืœืคืจื•ืฅ ืœื›ื ืœืžื—ืฉื‘ ืืคื™ืœื• ื“ืจืš ืฉืœื™ื—ืช ื”ื•ื“ืขื” (ืจืง ืžื–ื” ืฉืคืชื—ืชื ืืช ื”ืžื™ื™ืœ), ืื‘ืœ ื™ืฉ ื”ืจื‘ื” ื™ื•ืชืจ ื”ืืงืจื™ื ืฉื™ืฆื˜ืจื›ื• ืฉืชืœื—ืฆื• ืขืœ ืœื™ื ืง ื›ื“ื™ ืœืขืฉื•ืช ื ื–ืง. ืื ื™ ืœืงื—ืชื™ ื‘ืฉื‘ื™ืœื›ื ื•ื‘ืฉื‘ื™ืœ ื”ืžืฉื—ืง ืืช ื”ืกื™ื›ื•ืŸ ืื– ื‘ื•ืื• ื ืžืฉื™ืš. ืœื—ื™ืฆืช ื›ืคืชื•ืจ ื™ืžื ื™ ืขืœ ื”ืงื™ืฉื•ืจ ื•"ื”ืขืชืง ืงื™ืฉื•ืจ" ืžื’ืœื” ืœื™ ืฉื”ื˜ืงืกื˜ "ืœืฉืœื ืขื‘ื•ืจ ื”ื—ื‘ื™ืœื” ืฉืœื™" ื”ื™ื” ืœื•ืงื— ืื•ืชื™ ืœืขืžื•ื“ ื”ื‘ื:
https://service.israelpost.co.il.umaenterprise.net/
ื”ื˜ืจื™ืง ื›ืืŸ ื”ื•ื ืžืื•ื“ ืคืฉื•ื˜ - ื™ืฉ ื›ืชื•ื‘ืช ืฉื”ื”ืชื—ืœื” ืฉืœื” ื ืจืื™ืช ื›ืžื• ื“ื•ืืจ ื™ืฉืจืืœ ืื‘ืœ ื”ืกื™ื•ืžืช ืžืจืื” ืœื ื• ืฉื–ื” ื“ื•ืžื™ื™ืŸ ืื—ืจ ื•ืœื ืงืฉื•ืจ ืœื“ื•ืืจ. ืฆืจื™ืš ืœื–ื›ื•ืจ ืฉื›ืœ ืื—ื“ ื™ื›ื•ืœ ืœืฉื ื•ืช ืืช ื”ื—ืœืง ื”ืฉืžืืœื™ ืฉืœ ื›ืชื•ื‘ืช ืื™ื ื˜ืจื ื˜ ืื‘ืœ ื–ื” ื”ื—ืœืง ื”ื™ืžื ื™ ืฉืงื•ื‘ืข, ื•ืฆืจื™ืš ืชืžื™ื“ ืœืงืจื•ื ืืช ื”ื›ืชื•ื‘ื•ืช ื”ืืœื” ืžื™ืžื™ืŸ ืœืฉืžืืœ. ื”ื“ื•ืžื™ื™ืŸ umaenterprise.net ืœื ื ืจืื” ื›ืžื• ืžืฉื”ื• ืฉืงืฉื•ืจ ืœื“ื•ืืจ. ื‘ื›ื ื™ืกื” ืœืืชืจ ื”ื‘ื™ืช ื‘ื“ื•ืžื™ื™ืŸ ืื ื™ ืžื’ืœื” ืฉ uma ื–ื” ืกืคืง ื˜ืœืงื•ื ื”ื•ื“ื™, ืฉื•ื‘ ืงืฉื” ืœืจืื•ืช ืงืฉืจ ืœื“ื•ืืจ ื™ืฉืจืืœ. ื›ื›ืœ ื”ื ืจืื” ืžื“ื•ื‘ืจ ื‘ืžืขืจื›ืช ืฉืžืืคืฉืจืช ืœืื ืฉื™ื ืœื™ืฆื•ืจ ืืชืจื™ื ืขื ืื™ื–ืฉื”ื• ืกืื‘ื“ื•ืžื™ื™ืŸ ืœื‘ื—ื™ืจืชื ื•ื›ื›ื” ืื•ืชื• ืชื•ืงืฃ ื™ืฆืจ ืืช ื”ื›ืชื•ื‘ืช ืฉืœ ืืชืจ ื”ืคื™ืฉื™ื ื’. ืืคื™ืœื• ืื ื”ืชืคืชื™ืชื™ ืขื“ ืœื›ืืŸ ื•ื”ื’ืขืชื™ ืœืืชืจ ื”ืชืฉืœื•ื ื—ืฉื•ื‘ ืœืฉื™ื ืœื‘ ืœื›ืžื” ืžืืคื™ื™ื ื™ื ืฉื: 1. ื”ื“ื•ืžื™ื™ืŸ ืฉืžื•ืคื™ืข ื‘ืฉื•ืจืช ื”ื›ืชื•ื‘ืช ืฉืœ ื”ื“ืคื“ืคืŸ ืžืกืชื™ื™ื ื‘ umaenterprise.net. 2. ื ื›ื•ืŸ, ื™ืฉ ืœื•ื’ื• ืฉืœ ื“ื•ืืจ ื™ืฉืจืืœ, ืื‘ืœ ื”ื˜ื•ืคืก ื‘ืื ื’ืœื™ืช ื•ื’ื ื”ืœื•ื’ื• ื‘ืื ื’ืœื™ืช. ื”ืžื™ื™ืœ ืฉื”ื ืฉืœื—ื• ืœื™ ื”ื™ื” ื‘ืขื‘ืจื™ืช. 3. ื”ื ืžื‘ืงืฉื™ื ืžืžื ื™ ืžืกืคืจ ื˜ืœืคื•ืŸ ื™ืฉืจืืœื™ ืื‘ืœ ื‘ื›ืœ ื–ืืช ืžืฆื™ื™ื ื™ื ื‘ืžืคื•ืจืฉ ืืช ื”ืงื™ื“ื•ืžืช ืฉืœ ื™ืฉืจืืœ 972 ื‘ื˜ื•ืคืก. 4. ืื™ืŸ ื‘ื˜ื•ืคืก ืฉื•ื ืคืจื˜ื™ื ืžื–ื”ื™ื ืขืœ ื”ืžืฉืœื•ื— ืฉืœื™. ืžื™ื˜ื™ื‘ื™ ืœื›ืช ื™ื•ื›ืœื• ืœืœื—ื•ืฅ View Page Source ืขืœ ืื•ืชื• ื”ืขืžื•ื“ ื•ืœืจืื•ืช ืฉืื™ืŸ ืฉื ื”ืคื ื™ื” ืœื—ื‘ืจืช ื›ืจื˜ื™ืกื™ ืืฉืจืื™ ื•ื‘ืžืงื•ื ื–ื” ื”ื˜ื•ืคืก ืžืคื ื” ืœืงื•ื‘ืฅ php ืคื ื™ืžื™ ื‘ืืชืจ. ื‘ืชืฉืœื•ื ื‘ื›ืจื˜ื™ืก ืืฉืจืื™ ืชืžื™ื“ ื”ื™ื™ื ื• ืžืฆืคื™ื ืœืจืื•ืช ืืช ืคืจื˜ื™ ื”ืืฉืจืื™ ื ืฉืœื—ื™ื ืœืกืคืง ืชืฉืœื•ืžื™ื ืžื•ื›ืจ. ## ื›ื•ืชืจื•ืช ื•ืชื•ื›ืŸ ื”ื”ื•ื“ืขื” ื‘ืชื•ื›ื ืช ื”ื“ื•ืืจ ืฉืœื™ ื™ืฉ ื›ืคืชื•ืจ "Show Raw Message". ื‘ื’'ื™ืžื™ื™ืœ ื”ืชื•ื•ื™ืช ื”ื™ื Show Original, ื‘ื›ืœ ืžืงืจื”, ื–ื” ืžื” ืฉืงื™ื‘ืœืชื™ ื›ืฉืœื—ืฆืชื™ ืขืœื™ื•:
Return-Path: <support@letoltokozpont.silverpc.hu>
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
  by sloti45n26 (Cyrus 3.5.0-alpha0-4585-ga9d9773056-fm-20220113.001-ga9d97730) with LMTPA;
  Mon, 31 Jan 2022 09:38:33 -0500
X-Cyrus-Session-Id: sloti45n26-1643639913-2945080-2-12629018722928771173
X-Sieve: CMU Sieve 3.0
X-Spam-known-sender: no
X-Spam-sender-reputation: 500 (none)
X-Spam-score: 3.0
X-Spam-hits: DCC_CHECK 1.1, HTML_IMAGE_ONLY_20 0.7, HTML_MESSAGE 0.001, ME_NOAUTH 0.01,
  ME_SENDERREP_NEUTRAL 0.001, RDNS_NONE 1.274, SPF_HELO_NONE 0.001,
  SPF_NONE 0.001, T_REMOTE_IMAGE 0.01, LANGUAGES unknown, BAYES_USED none,
  SA_VERSION 3.4.2
X-Spam-source: IP='84.21.7.29', Host='noreverse', Country='HU', FromHeader='hu',
  MailFrom='hu'
X-Spam-charsets: subject='UTF-8', plain='UTF-8', html='UTF-8'
X-Resolved-to: ynonperek@fastmail.com
X-Delivered-to: info@tocode.co.il
X-Mail-from: support@letoltokozpont.silverpc.hu
Received: from mx1 ([10.202.2.200])
  by compute1.internal (LMTPProxy); Mon, 31 Jan 2022 09:38:33 -0500
Received: from mx1.messagingengine.com (localhost [127.0.0.1])

ToCode
1 419
# ื”ื–ืžื ื” ืœื•ื•ื‘ื™ื ืจ: Next.JS ืื—ืช ื”ืฉืืœื•ืช ื”ื›ื™ ื ืคื•ืฆื•ืช ื›ืฉืื ืฉื™ื ืžืชื—ื™ืœื™ื ืœืขื‘ื•ื“ ืขื React ื• Node ื”ื™ื ืื™ืš ืœื—ื‘ืจ ืืช ืฉื ื™ ื”ื“ื‘ืจื™ื ื™ื—ื“ ื•ืœื”ืขืœื•ืช ืœืื•ื•ื™ืจ ืืคืœื™ืงืฆื™ื” ืžืœืื”. ืžืฆื“ ืื—ื“ ื”ื’ื™ืฉื” "ื”ืคืฉื•ื˜ื”" ืœื—ื™ื‘ื•ืจ ืจื™ืืงื˜ ืœืงื•ื“ ืฆื“ ืฉืจืช ืขื•ื‘ื“ืช ื’ื ื‘ืขื‘ื•ื“ื” ืžื•ืœ Node: ืื ื—ื ื• ื‘ื•ื ื™ื API ื‘ืืงืกืคืจืก ืฉื™ื•ื“ืข ืœื˜ืคืœ ื‘ CORS, ืžืชื•ืš ืจื™ืืงื˜ ืฉื•ืœื—ื™ื ื‘ืงืฉื•ืช Ajax ืœ API ื”ื–ื” ื•ืžืฆื™ื’ื™ื ืืช ื”ืชืฉื•ื‘ื•ืช. ืืคืœื™ืงืฆื™ื™ืช ืจื™ืืงื˜ ืžื•ื’ืฉืช ื‘ืฆื•ืจื” ืขืฆืžืื™ืช ืžืชื•ืš nginx, ืฉืžืฉืžืฉ ื’ื ื‘ืชื•ืจ Reverse Proxy ืœ Express. ืื‘ืœ ืื ื™ ืœื ื‘ื˜ื•ื— ืฉื”ื’ื™ืฉื” ื”ื–ืืช ืžืกืคื™ืง ืคืฉื•ื˜ื” ืื• ืžืกืคื™ืง ืžื•ืžืœืฆืช. ื‘ื™ืŸ ื”ื‘ืขื™ื•ืช ืฉืœื”: 1. ืื™ืŸ ืชืžื™ื›ื” ื‘ Server Side Rendering. 2. ืื™ืŸ ื“ืจืš ืงืœื” ืœืฉืชืฃ ืงื•ื“ ื‘ื™ืŸ ืืคืœื™ืงืฆื™ื™ืช ื”ืจื™ืืงื˜ ืœืืคืœื™ืงืฆื™ื™ืช ื” Node.JS. 3. ืฆืจื™ืš ืœื‘ื ื•ืช ืœื‘ื“ ืžื ื’ื ื•ื ื™ Build ืœืฉืชื™ ื”ืกื‘ื™ื‘ื•ืช. 4. ืฆืจื™ืš ืœื”ืชืืจื’ืŸ ืขืœ ืฉืจืช ื• nginx, ื•ืœืชื—ื–ืง ืื•ืชื•. ื•ืจืกืœ (ื‘ืื ื’ืœื™ืช vercel) ื”ื™ื ื—ื‘ืจื” ืฉืžื ืกื” ืœืชืช ืœื›ื ื‘ื“ื™ื•ืง ืืช ื”ื“ื‘ืง ืฉื—ืกืจ ื‘ื™ืŸ ื”ืžืขืจื›ื•ืช, ื‘ืชื•ืš ื—ื•ื•ื™ืช ืคื™ืชื•ื— ื ื•ื—ื” ื•ืžื”ื™ืจื”. ื”ื ื‘ื ื• ืกื‘ื™ื‘ืช ืขื‘ื•ื“ื” ื‘ืฉื Next.JS ืฉืžื—ื‘ืจืช ื‘ื™ืŸ ืจื™ืืงื˜ ืœ Node ื‘ืฆื•ืจื” ื—ืœืงื” ืœื’ืžืจื™, ื•ื”ื ื’ื ืžืกืคืงื™ื ืžืขืจื›ืช ืื™ืจื•ื— ืงื•ื“ ื‘ืขื ืŸ ืขื ื—ืฉื‘ื•ืŸ ื—ื™ื ืžื™ ืœืžืชื—ื™ืœื™ื ื›ื“ื™ ืฉืชื•ื›ืœื• ืœื”ืขืœื•ืช ืืช ื”ืงื•ื“ ืฉื›ืชื‘ืชื ื‘ืœื—ื™ืฆืช ื›ืคืชื•ืจ ืœืขื ืŸ. ื‘ื•ื•ื‘ื™ื ืจ ื”ืฉื‘ื•ืข ื ื“ื‘ืจ ืขืœ ืื•ืชื• Next.JS ื•ื ืจืื” ืื™ืš ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื—ื‘ืจ ื‘ื™ืŸ React ืœ Node.JS, ื•ืœื™ื™ืฉื•ืžื™ ืขื ืŸ ื ื•ืกืคื™ื ื›ื•ืœืœ ื™ื™ืฉื•ืžื™ื™ื ืžืกืคืงื™ื ืื—ืจื™ื. ืืช ื”ื•ื•ื‘ื™ื ืจ ืื ื™ ืืขื‘ื™ืจ ื™ื—ื“ ืขื ื ื™ืจ ืคืจื™ื–ื™ืืŸ, ื•ื™ื—ื“ ืื ื—ื ื• ื ืจืื”: 1. ืื™ืš ืœื‘ื ื•ืช ื™ื™ืฉื•ื Next.JS ืžืืคืก. 2. ืื™ืš ืœื”ืจื™ืฅ ืื•ืชื• ื‘ืžืฆื‘ ืคื™ืชื•ื—. 3. ืื™ืš Next.JS ืžื—ื‘ืจืช ื‘ื™ืŸ ืงื•ื“ ืจื™ืืงื˜ ืœืงื•ื“ Node.JS, ืื™ืš ื‘ื•ื ื™ื API Endpoints ื•ืื™ืš ืžืคืขื™ืœื™ื Server Side Rendering. 4. ืื™ืš ืœื”ืขืœื•ืช ืืช ื”ื™ื™ืฉื•ื ืฉื›ืชื‘ื ื• ืœืขื ืŸ ื›ืš ืฉื™ื”ื™ื” ื–ืžื™ืŸ ืžื›ืœ ืžืงื•ื. 5. ืื™ืš ืœื—ื‘ืจ ืืช ื”ื™ื™ืฉื•ื ืœืกืคืง ื‘ืกื™ืกื™ ื ืชื•ื ื™ื (ืื ื—ื ื• ื ืขื‘ื•ื“ ืขื ืคื™ื™ืจื‘ื™ื™ืก) ื›ื“ื™ ืœืฉืžื•ืจ ืžื™ื“ืข ืžืฉืชื ื”. ืœืคืจื˜ื™ื ื•ื”ืฆื˜ืจืคื•ืช ืžื•ื–ืžื ื™ื ืœื”ื™ื›ื ืก ืœื“ืฃ ื”ื•ื•ื‘ื™ื ืจ ื‘ืงื™ืฉื•ืจ: https://www.tocode.co.il/workshops/111