Deno가 새로운 노드인가요?🦕
5780 단어 denotypescriptsecuritynode
Denov1.0가 출시되었고 앞으로 Node.js를 대체하는 것이 옳은 길일 수 있다고 생각합니다.
데노
Deno는 JavaScript 및 TypeScript를 위한 보안 런타임입니다. 구성 파일 없이 TypeScript를 작성하고 TypeScript 지원과 번들러가 모두 코어에 있는 단일 ES 모듈에 모두 함께 번들로 넣을 수 있다고 상상해 보십시오. Deno를 시작할 때의 느낌입니다.
V8을 사용하고 Rust로 구축된 JavaScript 및 TypeScript를 위한 현대적이고 안전한 런타임입니다. 반면 Node.js는 C++ 및 JavaScript로 작성되었습니다.
재미있는 사실: Deno는 Node.js의 아나그램입니다. sort() node
하면 deno
🦕이 됩니다.
Deno는 최신 JavaScript 및 TypeScript, WebAssembly 코드를 작성하는 데 필요한 많은 기능을 제공합니다.
Deno에는 몇 가지 흥미로운 기능이 있습니다.
명시적으로 활성화하지 않는 한 파일, 네트워크 또는 환경에 액세스할 수 없습니다.
단일 실행 파일만 제공합니다.
Deno는 즉시 사용 가능한 TypeScript 컴파일러와 함께 제공됩니다.
아니요
package.json
, 아니요node_modules
. 소스 파일은 상대 경로, 절대 경로 또는 소스 파일의 정규화된 URL을 사용하여 가져올 수 있습니다. import { test } from "https://unpkg.com/[email protected]/testing.ts"
import { log } from "./util.ts"
Node.js의 주요 문제는 무엇입니까?
이것은 특히 npm에서 신뢰할 수 없는 패키지를 설치할 때 보안 문제일 수 있습니다. The
[crossenv](https://blog.npmjs.org/post/163723642530/crossenv-malware-on-the-npm-registry)
incident이 그 예이다. crossenv
에 쓰기 권한이 없었다면 이런 일은 일어나지 않았을 것입니다. GYP를 사용하여 C 라이브러리에 링크되는 모듈을 구축하는 것은 큰 고통입니다. 정상적인 DX를 얻으려면
node-gyp
(GYP 위에 있는 레이어)와 다른 레이어(예: [nan](https://www.npmjs.com/package/nan)
)를 사용해야 합니다. 여기서 주요 문제는 모듈 시스템이 브라우저와 호환되지 않아 코드가 완전히 동형이 아니라는 것입니다. 이는 주로
node_modules
에 종속성을 저장하고 package.json
를 갖는 두 가지 이유로 인해 발생합니다. Deno 설치를 시작하겠습니다.
PowerShell 사용(Windows):
iwr https://deno.land/x/install/install.ps1 -useb | iex
쉘:
curl -fsSL https://deno.land/x/install/install.sh | sh
자작으로:
brew install deno
이제 터미널에서 deno
명령을 실행하여 deno --version
가 설치되었는지 확인하십시오.
간단한 HTTP 서버
이 예에는 간단한 http 서버(app.ts)가 포함되어 있습니다.
import { serve } from "https://deno.land/[email protected]/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
req.respond({ body: "Hello World\n" });
}
코드를 실행합니다.
deno run app.ts
권한 오류가 발생합니다.
error: Uncaught PermissionDenied: read access to "http/server.ts", run again with the --allow-read flag
► $deno$/dispatch_json.ts:40:11
at DenoError ($deno$/errors.ts:20:5)
...
이는 deno를 사용하여 권한의 세분성을 제어할 수 있기 때문입니다. 위의 응용 프로그램을 실행하려면 특정 권한이 허용됨을 나타내는 일부 플래그를 설정해야 합니다.
deno run --allow-net app.ts
> http://localhost:8000/
이제 localhost:8000에서 브라우저를 엽니다. Hello World 텍스트가 표시됩니다.
좋습니다. 이것은 deno를 사용하여 간단한 http 서버를 만드는 방법에 대한 기본적인 데모였습니다.
See more example here
deno에서 사용자 REST API를 만들었습니다here. Repo를 복제하고 놀아보세요. 기여는 언제나 환영입니다🎉
결론
Deno가 프로덕션 준비 상태가 되기까지는 아직 시간이 많이 걸리지만 Node.js보다 더 나은 자바스크립트 런타임이 되기 위한 올바른 길이라고 생각합니다🔥.
읽어 주셔서 감사합니다! 👋👋
내 웹사이트smithgajjar.tech 및 GitHubhere을 확인하십시오.
나를 따라와
Reference
이 문제에 관하여(Deno가 새로운 노드인가요?🦕), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/smithg09/is-deno-the-new-node-7o4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
iwr https://deno.land/x/install/install.ps1 -useb | iex
curl -fsSL https://deno.land/x/install/install.sh | sh
brew install deno
이 예에는 간단한 http 서버(app.ts)가 포함되어 있습니다.
import { serve } from "https://deno.land/[email protected]/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
req.respond({ body: "Hello World\n" });
}
코드를 실행합니다.
deno run app.ts
권한 오류가 발생합니다.
error: Uncaught PermissionDenied: read access to "http/server.ts", run again with the --allow-read flag
► $deno$/dispatch_json.ts:40:11
at DenoError ($deno$/errors.ts:20:5)
...
이는 deno를 사용하여 권한의 세분성을 제어할 수 있기 때문입니다. 위의 응용 프로그램을 실행하려면 특정 권한이 허용됨을 나타내는 일부 플래그를 설정해야 합니다.
deno run --allow-net app.ts
> http://localhost:8000/
이제 localhost:8000에서 브라우저를 엽니다. Hello World 텍스트가 표시됩니다.
좋습니다. 이것은 deno를 사용하여 간단한 http 서버를 만드는 방법에 대한 기본적인 데모였습니다.
See more example here
deno에서 사용자 REST API를 만들었습니다here. Repo를 복제하고 놀아보세요. 기여는 언제나 환영입니다🎉
결론
Deno가 프로덕션 준비 상태가 되기까지는 아직 시간이 많이 걸리지만 Node.js보다 더 나은 자바스크립트 런타임이 되기 위한 올바른 길이라고 생각합니다🔥.
읽어 주셔서 감사합니다! 👋👋
내 웹사이트smithgajjar.tech 및 GitHubhere을 확인하십시오.
나를 따라와
Reference
이 문제에 관하여(Deno가 새로운 노드인가요?🦕), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/smithg09/is-deno-the-new-node-7o4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Deno가 새로운 노드인가요?🦕), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/smithg09/is-deno-the-new-node-7o4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)