ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
+130 kunlar
Postlar arxiv
1 419
# ืื ืืคืฉืจ ืืืืื ืืืงืื ืดืื ืืคืฉืจืด
ืื ืืคืฉืจ ืืืจืก ืืช ืืืกืืื. ื"ืื ืืคืฉืจ" ืืื ืืื ืืืชืงืื ืืืื ืืืขื ืืฃ ืคืขื ืื ื ืืื.
ืืจืืจ ืฉืืฉ ืืืจืื ืฉืื ืืคืฉืจ ืืขืฉืืช, ืืื ืื ืืืืก ืื ืืืงืื ืืืงืฉ ืืฉืื ืื ืื ืจืื ืืืื ืฉืืื ืจืืฆื ืืฉืื ืฉืืื ืจืื ืืืงืื ืืืจ, ืื ืืฉืื ืฉื ืจืื ืื ืืืืื ื. ืืืชื ืืืก ืื ืืงืื ืื ืจืืื ืืช ืื ืืขืจืืช ืืืืืืฆืื ืฉืืื, ืืืื ืื ืื ืืืื ืืืชื.
ืืฉืื ื ืืืคืฉ ืืจืฉืช ืืืืื ืฉืืืงืกืืืก ืืื ืชืืืื ืืืืืืช ืืกืคืจ ื Redirects ืืขืืืื ืืืืคืืคื, ืื ื ืืืื ืืืคืื ืืช ืื ืืืกืจ ืืืงืื ืืืืืื ืฉืืืขืจืืช ืื ืืคืฉืจ ืืืื ืืืืชืจ ืขื ืืขืงื ืืืจื Redirects.
ืื ืืฉืื ื ืืืคืฉ ืืจืฉืช ืืืืื ืฉืืคืจืืืงื create-react-app ื jest ืื ืชืืื ืืืืกืคืช ืืืืื ืคืืืืื, ืื ื ืืืื ืืชืจืื ืืช ืื ืืืกืจ ืืืงืื ืืืืืื ืฉืื ืืคืฉืจ ืืืืืง ืืช ืืคืจืืืงื ืื ื ืฉืชืืฉ ืืกืคืจืืืช npm ืืกืืืืช ืฉืฆืจืืื ืืืจื ืขื ืคืืืืื ืฉืืืงืจื ืื ืืืคืืข ืืืจืืจืช ืืืืื.
ืืื ืฉื ื ืืืงืจืื ืืขืืื ืืื ืืืชืจ ืื ื ืชืงืฉืจ ืืืงืื ืืช ืกื ืืืืืืฆืื ืืืขืืืืืช ืื ืืฆื ืคืืชืจืื ืฉืื ืืคืฉืจ ืืขืฉืืช-
1. ืืืื ืืืืืช ืฉืืืืืช ื Redirects ืืืงืกืืืก ืืืื ืืฉืืื, ืืกืคืืง ืืฉืืื ืืฉืืื ืืชืจืื ืืืงืกืืืก ืงืื ืฉืชืืื ืืื.
2. ืืืื ืืืืืช ืฉืืืืืจื ืืืงืกืืืก ืื ืืืืช ืืฉืืื, ืืืคืฉืจ ืืขืจืื ืืืืฉ ืืช ืืงืื ืขื Fetch API ืื ืกืคืจืื ืืืจืช.
3. ืืืื ืืืืืช ืฉืืคืฉืจ ืืขืืื ืืช ืงืื ืฆื ืืฉืจืช ืื ืืืืกืืฃ ืคืจืืงืกื, ืืื ืืืื ืืช ืืฆืืจื ืืืืืืช ืืกืคืจ ื Redirects.
ืื ืืืงืจื ืฉื ื'ืกื, ืืืื ืืืืืช ืฉืืคืฉืจ ืืืฉืชืืฉ ืืกืคืจืืืช ืืืืงื ืืืจืช; ืืืื ืืืืืช ืฉืืคืฉืจ ืืืคืขืื eject ืื ืืืืชืจ ืขื create-react-app ืืืืืืื.
"ืืื ื ืืืจ ืขื ืื" ืืื ืชืืื ืืืคืฆืื ืืืื ืืืชืจ ื"ืื ืืคืฉืจ". ืืื ืื ืืกืืฃ ืืืืืืื ืืืืชืจ ืขื ืืคืืฆ'ืจ ืื ืืชืืงืื, ืืืื ืืืฆืืื ืขื ืืจืืฉื ืืจืื ืืืชืจ ืืืื.
1 419
# ืื ืืืืจ ืืช ืืืืืื
ืืจืื ืืืชืจ ืงื ืืืืื ืืช ืืคืืจืืฉ ืฉื ืืืื ืืืฉื ืืฉืคื ืืขืืจืืช ืืืฉืจ ืืืื ืืืฉื ืืฉืคื ืืจื ืฉืืฃ ืคืขื ืื ืฉืืขืชื. ืืืืื ืื ืืืืืื ืืืืฉ ืืขืืจืืช ืืืขื ืืฃ ืคืขื ืื ืืืื ืืืฉืื ืืืืจื. ืืชืืจ ืืืืจื ืฉืคืช ืื ืฉื ืืฉืคื ืืฉ ืกืืืื ืืื ืฉืืืจ ื ืชืงืืชื ืืืืื ืืืืช ืืืคืฉืื, ืืื ืื ืื ืื ืืืื ื ืชืงืืชื ืืืฉืคืขื ืฉืื ืื ืืืืืื ืืืืืช ืื.
ืืื ืืืืคื ื ืืื - ืืงืฉืื ืืืืื ืืฉืคื ืืืฉื ืืืืื ืืืืืช ืืืื ืืชืกืืืช, ืื ืื ื ืืคืืื ืื ืืืืข ืืืืื ืฆืืืืื ืฆืจืื ืืฉืื ืื, ืืืื ืืฉืื ื ืื ืกื ืืืืืจ ืขื ืืืืื ืืงืื ืจื ืชืฆื ืื ืืืื ืืืื ืืืจืช. ืืืื ืืคืฉืจ ืืืืืจ ืืืื ืฉืืชื ืืคืืื ืื ืืฆืืื ืืืืื ืืืชื?
ืืืกืจ ืืืืจืืช ืขื ืืืืืื ืืื ืืืืืจืืื ืืืจืืืืื ืืชืกืืื ืืชืืืื ืืืืืื. ืื ืื ื ืฉืืืขืื ืืกืืจ, ืืืืืื ืฉืื ืื ื ืืืื ืื ืื ืืื ืื ืืื ืืืื ืืืืฉื ืืช ืื ืืืืื ืื ืขืืื. ืื ื ืื ืกื ืืฉืืื ืฉืืื ืืื ืฉืื ืืคืืื ืื ืืืื ืื ืื ืื ื ืฉืืื.
ืืืื ืื ืืื ืืืื ืืฉืืื ืืคืืจืื "ืืฉืืื ืื ืืืื ืฆืจืื ืคืจืืืจืื ืืคืื ืงืฆืื ืื ืื ื ืืืื ืืืฉืชืืฉ ืืืฉืชื ืื ืืืืืืืืื", ืืืชื ืืคืืื ืื ืืืืข ืืื ืืืชืืื ืืขื ืืช ืขื ืื. ืืื ืจืื ืื ืืืง ืืืฉืืืืช ืฉืื ื ืฉืืขืืช ืืื ืื ืืฉืืื ืฉืื ื ืืืฉ ืืื.
ืืจื ืืืช ืืืชืืืจ ืขื ืืชืกืืื ืืื ืืืืืจ ืืคืขืจ ืืืืงืืจ ืืืชื. ืืืืื ืฉืืืงื ืื ืขืื ืืื ืขื ืฉืืฆืืื ืืืื ืืฉืืื ืืช ืืฉืืืืช ืื ืืื ืืช, ืืืื ืชืืื ืขืืืฃ ืืืชืื ืงืื ืืืงืจืื ืงืื ืฉื ืืืจืื ืจืง ืืฉืืื ืืืืืช ืืชืื ืืฉืคื ืืืืืฉ ืืช ืืืืฉืืื. ืืืกืชืื ืื ืืืจืื ืฉืืืืื ืืคืืจืืืื ืืื ืขืื ืื ืืื, ืืืชืช ืืื ืืื. ืจืง ืืืจื ืฉืืฆืืืืื ืืฉืืืข ืืช ืืืืืื ืืคืฉืจ ืืืชืืื ืืืคืฉ ืืช ืืืฉืืขืืช.
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 ืืืฉื ืจืง ืืช ืืืืืจืื ืฉืืื ืืืืช ืฆืจืื.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 ืืืืืื ืืงืจืืืื ืืื ืื ืชืขืื ืคื ืืืชืจ ืืืืืจ ืืงืืืืช ืืืืืื ืจืื.1 419
ืื ืืืจืื ืขืื ืืฆื ืฉืขื ืืื ืืื ืขื ื ืืจ ืคืจืืืืื ืขื Next.JS, ืืคืขื ืจืืฉืื ื ืืขืืืจ ืื ืืืืืืื ืืืื. ืืืืื ืื ืืืฆืืจืฃ ืืืื ืื ืืฆืคืืช ืืจื ืืืืืืื ืืื:
https://www.youtube.com/watch?v=OjMqzBWuTl0
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>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]"
/>
))}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/, ืืื ืื ื ืื ืืืื ืฉืืงืจืืื ืื ืชืขืฉื ืืื ืืฉืง ืืืชืื ืืืชืจ ืืืืืื.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 ืืืืืจ ืืืืืชื.
ืื ื ืืงืืื ืฉื ืชืชื ืืื ืืื ืืกืคืจ ืืืื ืืืืืช ืืืืจ ืืืืืฃ ืืจืืืืืืช ืจืฉืช. ืฆืจืื ืืืืื - ืืจืื ืจืืืืืืช ืจืฉืช ืฉื ืืชืงื ืืื ืืืื ืืชืืืืืืช ืืืจืื ืืืืืืื ืคื ืืคืืกื. ืืืืจ ืฉืืื ืืืฆืจ ืืืื ืืจืืืืืืช ืจืฉืช ืื ืคืจืืื ืืืืื, ืืืืช ืืืขืชื ืืืฉืืืืช ืฉื ืฉืืืจื ืขื ืคืจืืืืช ืืจืฉืช: ืืื ืฉืืชืืงืคืื ืืฉ ืืืชืจ ืคืจืืื ืืืืื ืขืืื ื, ืื ืืืื ืืื ืืืชืจ ืงื ืืฉืืื ืืืืขืืช ืืืืจืืืืช ืฉืืืจืื ืื ื ืืืืืื ืืืกืจ ืืืืืช ืืฉืื ืืืืชื ื ืืื.
ืืืืืื ืฉืื ื ืื ืืืืืขื ืืืชื ืืขืืจืืช ืชืงืื ื, ืืืืืช ืืกืคืจ ืืฉืืื ืืืืชื ืฉืื ื ืืืืช ืืืื ืื, ืืฆืืื ืช ืืช ืืฉื ืฉืื ืืืืชืืืช ืฉืื ืืืชื ืืืื ืชื ืืช ืืืืฆืจ, ืื ืืื ืืจืื ืืืชืจ ืกืืืื ืฉืืืืชื ื ืืคื ืืคื ืืื.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>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);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])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
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
