Tus sau ntawm Node.js nthuav qhia qhov ruaj ntseg JavaScript platform Deno 1.0
Tom qab ob xyoos ntawm kev loj hlob hais tawm thawj qhov kev tso tawm loj Dhia 1.0, lub platform rau kev ua tiav ib leeg ntawm cov ntawv thov hauv JavaScript thiab TypeScript, uas tuaj yeem siv los tsim cov neeg tuav haujlwm uas khiav ntawm lub server. Lub platform yog tsim los ntawm Ryan Dahl (Ryan Dahl), tus tsim ntawm Node.js. Zoo li Node.js, Deno siv lub cav JavaScript V8, uas kuj yog siv hauv Chromium-based browsers. Tib lub sijhawm, Deno tsis yog rab rawg ntawm Node.js, tab sis yog ib txoj haujlwm tshiab tsim los ntawm kos. Qhov project code faib los ntawm nyob rau hauv MIT daim ntawv tso cai. Cov rooj sib txoos npaj rau Linux, Windows thiab macOS.
Tus naj npawb tseem ceeb yog txuam nrog kev ruaj khov ntawm APIs hauv Deno namespace, uas yog lub luag haujlwm rau kev sib cuam tshuam ntawm daim ntawv thov nrog OS. Software interfaces uas muaj tam sim no tsis ruaj khov, yog zais los ntawm lub neej ntawd thiab tsuas yog muaj thaum khiav hauv "--tsis ruaj khov" hom. Raws li cov qauv tshiab tau tsim, xws li APIs yuav maj mam ua kom ruaj khov. API nyob rau hauv lub ntiaj teb no namespace, uas muaj xws li tej functions xws li setTimeout() thiab fetch(), yog ze li sai tau rau API ntawm cov pa web browsers thiab yog tsim nyob rau hauv raws li Web qauv rau browsers. Cov APIs muab los ntawm Rust, uas yog siv ncaj qha rau hauv lub platform code, nrog rau kev sib txuas rau kev tsim plugins rau Deno runtime, tseem tsis tau ruaj khov thiab txuas ntxiv txhim kho.
Cov laj thawj tseem ceeb rau kev tsim lub platform tshiab JavaScript yog lub siab xav tshem tawm cov tswv yim yuam kev, tau txais hauv Node.js architecture, thiab muab cov neeg siv nrog ib puag ncig kev nyab xeeb dua. Txhawm rau txhim kho kev ruaj ntseg, lub cav V8 tau sau rau hauv Rust, uas zam ntau qhov tsis zoo uas tshwm sim los ntawm kev ua haujlwm qis qis, xws li kev nkag mus tom qab tsis pub dawb, tsis muaj qhov taw qhia tsis zoo, thiab tsis muaj kev cuam tshuam. Lub platform yog siv los ua cov ntawv thov hauv hom tsis thaiv Tokyo, kuj sau nyob rau hauv Rust. Tokio tso cai rau koj los tsim cov ntawv thov kev ua haujlwm siab raws li kev tshwm sim-tsav architecture, txhawb nqa ntau txoj xov thiab ua cov kev thov hauv network hauv hom asynchronous.
Kev ua haujlwm tau zoo ntawm kev thov kev sib txuas lus ntawm HTTP hauv cov ntawv thov; lub platform yog tsim los tsim cov ntawv thov kev ua haujlwm siab;
Lub peev xwm los tsim kev siv lub vev xaib thoob ntiaj teb uas tuaj yeem ua tiav ob qho tib si hauv Deno thiab hauv lub vev xaib tsis tu ncua;
muaj txheem txheej ntawm modules, kev siv uas tsis tas yuav khi rau sab nraud dependencies. Modules los ntawm cov qauv sau tau dhau los soj ntsuam ntxiv thiab ntsuas kev sib raug zoo;
Ntxiv rau lub sijhawm ua haujlwm, Deno platform kuj tseem ua tus tswj hwm pob thiab tso cai rau koj nkag mus rau cov qauv los ntawm URL hauv cov lej. Piv txwv li, txhawm rau thauj khoom ib qho module, koj tuaj yeem teev nyob rau hauv cov cai "ntshuam * raws li teev los ntawm "https://deno.land/std/log/mod.ts". Cov ntaub ntawv rub tawm los ntawm cov servers sab nraud ntawm URL yog cached. Kev khi rau cov qauv qauv yog txiav txim siab los ntawm kev qhia tus lej version hauv URL, piv txwv li, “https://unpkg.com/[email tiv thaiv]/dist/lilttest.js";
Cov qauv muaj xws li kev tshuaj ntsuam xyuas kev sib koom ua ke (qhov "deno info" hais kom ua) thiab kev siv hluav taws xob rau kev ua lej code (deno fmt);
Txhua daim ntawv thov ntawv tuaj yeem muab tso ua ke rau hauv ib daim ntawv JavaScript.
Qhov txawv ntawm Node.js:
Deno tsis siv npm pob tus thawj tswj
thiab tsis khi rau repositories, modules tau hais los ntawm URL lossis los ntawm txoj kev ua ntaub ntawv, thiab cov modules lawv tus kheej tuaj yeem muab tso rau hauv ib lub vev xaib;
Deno tsis siv "package.json" los txhais cov modules;
API sib txawv, tag nrho cov asynchronous ua hauv Deno rov qab cog lus;