ノード-ノード.js
8330 ワード
Deno JavaScriptとTypesScript(公式サイトから)のための安全なランタイムです.いい文章ですね.
ノードとは何か.JS ?
Node.js また、ChromeのV 8 JavaScriptエンジンに組み込まれたJavaScriptランタイムです.(公式のnode . jsから)
上記の文から、denoとnodeの両方を言うことができます.JSは同じですか?はい.
だからノードを与えた開発者.JSも代替案としてデノを開発した.
まあライアンdalノードの作成者.JSはそれについていくつかの後悔を持っています、そして、denoは単に「より良いバージョンのノード. js」です.
それで、ノードの開発者はどうでしたか.JSはそれで間違っていたと思います?
Nodeと間違っていること.JS ?
最も重要なことは何もノードと間違っています.というのは、denoが存在するからである.
ノード.JSは、何千もの開発者と会社によって使われます、そして、それは非常に活発なコミュニティ―ノード―で巨大で安定した生態系を持ちます.JSはどこにも行かない.
しかし、改善される可能性がありますが、影響の多くを持っていないいくつかの弱点があります. ノード.JSはJavaScriptだけに焦点を当て、ネイティブの静的なタイプを使用しません. インポート構文はノードに非常に固有です.私たちがESモジュールから知っているものではなく、JS. これは、約束のような現代のJavaScript機能をサポートしていません. デフォルトでは安全ではありません. 最後のポイントはトリッキーなものであり、間違って解釈することができます.
ノード.JSはあなたが安全なアプリケーションを構築することができます.
しかし、ノードスクリプトにはビルトインセキュリティモデルがありません.正確には、デフォルトでは、すべてのノードスクリプトは、ファイルシステム、ネットワーク、環境へのフルアクセスがあります.
これはノードを作る.JSは非常に柔軟ですが、それはまた、あなたのファイルシステム上のファイルを理論的には何でもEslintのようなツールを意味する.
どのように、Denoはこれらの問題を解決しますか?
ノードと同じものを使用できます.jsこれは、ノードとしてWebサーバーを構築するために使用することができます.その他のユーティリティスクリプト.
でも、デコ デフォルトでは、ノードとは異なり、typescriptをサポートします.したがって、それはJavaScriptとTypeScript実行時です. 使用してESモジュールのインポートシステムではなく、独自の. 抱擁約束のような現代のJavaScript機能. デフォルトでは安全です.
試してみましょう
デコをインストールするには
タイプスクリプトのサポート
通常のJavaScriptスクリプトを書くことができますが、typescriptコンパイラがデフォルトで提供されているので、任意の点に対して任意の点に切り替えることもできます.
しかし、これは完全に任意ですが、それを使用する場合は、カスタムTypeScriptプロジェクトのコンパイルフローを設定する必要はありません.
ESモジュールサポート
ノード.JSは独自のモジュールシステム
このフォルダは簡単に非常に大きくなることができます、そして、それはすでにノードの重要な部分です.JSデザイン.
ノードで.我々が我々が急行に頼るウェブサーバをつくるとき.JSとWebサーバのようなものになる
しかし、denoは簡素化します
Denoは自動的にダウンロードして、それが初めて動くとき、このパッケージをキャッシュします.
近代
デコは、約束のような最新のJavaScript機能をサポートし、非同期のイテレータボックスから.
完全なサーバーを回転させる
セキュリティ
前述のように、デコは内蔵セキュリティを持っています.
しかし、これはDEOアプリケーションが常に確保されることを意味しません.
これは単にdenoアプリケーションがあなたのファイルシステム、ネットワークと環境をコントロールしていないことを意味します.
たとえば、アプリケーションを実行するとき
スクリプトは、
結論
あなたはdenoに切り替える必要があります、それは完全にあなた次第です.
しかし、DENOバージョン1.0は最近リリースされました、そして、ちょうどそれが主要なリリースであるので、それはそれが生産準備ができているというわけではありません.
それは非常に新しいとアクティブな開発の下、今はパッケージの生態系に飛び込む時間です.
ノードの置換になるかどうかはわかりません.唯一の時間は、それに答えることができます.
ノードとは何か.JS ?
Node.js また、ChromeのV 8 JavaScriptエンジンに組み込まれたJavaScriptランタイムです.(公式のnode . jsから)
上記の文から、denoとnodeの両方を言うことができます.JSは同じですか?はい.
だからノードを与えた開発者.JSも代替案としてデノを開発した.
まあライアンdalノードの作成者.JSはそれについていくつかの後悔を持っています、そして、denoは単に「より良いバージョンのノード. js」です.
それで、ノードの開発者はどうでしたか.JSはそれで間違っていたと思います?
Nodeと間違っていること.JS ?
最も重要なことは何もノードと間違っています.というのは、denoが存在するからである.
ノード.JSは、何千もの開発者と会社によって使われます、そして、それは非常に活発なコミュニティ―ノード―で巨大で安定した生態系を持ちます.JSはどこにも行かない.
しかし、改善される可能性がありますが、影響の多くを持っていないいくつかの弱点があります.
ノード.JSはあなたが安全なアプリケーションを構築することができます.
しかし、ノードスクリプトにはビルトインセキュリティモデルがありません.正確には、デフォルトでは、すべてのノードスクリプトは、ファイルシステム、ネットワーク、環境へのフルアクセスがあります.
これはノードを作る.JSは非常に柔軟ですが、それはまた、あなたのファイルシステム上のファイルを理論的には何でもEslintのようなツールを意味する.
どのように、Denoはこれらの問題を解決しますか?
ノードと同じものを使用できます.jsこれは、ノードとしてWebサーバーを構築するために使用することができます.その他のユーティリティスクリプト.
でも、デコ
試してみましょう
デコをインストールするには
curl -fsSL https://deno.land/x/install/install.sh | sh
タイプスクリプトのサポート
通常のJavaScriptスクリプトを書くことができますが、typescriptコンパイラがデフォルトで提供されているので、任意の点に対して任意の点に切り替えることもできます.
let text: string;
text = “hello world”;
console.log(text);
このコードは、ノードで実行されたときに失敗します.しかし、DEOと一緒の作品.しかし、これは完全に任意ですが、それを使用する場合は、カスタムTypeScriptプロジェクトのコンパイルフローを設定する必要はありません.
ESモジュールサポート
ノード.JSは独自のモジュールシステム
const http = require(‘http’);
しかし、それが現代のウェブフレームワークになるとき、我々は異なる形式に慣れていますimport {http} from ‘some_node_module’;
さらに、ノードプロジェクトではNPMを使用してプロジェクトパッケージを管理します.このツールはそれらをダウンロードし、nodehuモジュールのディレクトリに格納します.このフォルダは簡単に非常に大きくなることができます、そして、それはすでにノードの重要な部分です.JSデザイン.
ノードで.我々が我々が急行に頼るウェブサーバをつくるとき.JSとWebサーバのようなものになる
const express = require(‘express’);
const app = express();
ここではモジュールをnodeoundモジュールディレクトリからインポートします.しかし、denoは簡素化します
import {serve} from ‘https://deno.land/[email protected]/http/server.ts’;
const server = serve({ port: 3000 });
これはサーバからサーブ関数をインポートします.WebからのTSパッケージ.Denoは自動的にダウンロードして、それが初めて動くとき、このパッケージをキャッシュします.
近代
デコは、約束のような最新のJavaScript機能をサポートし、非同期のイテレータボックスから.
完全なサーバーを回転させる
import {serve} from ‘https://deno.land/[email protected]/http/server.ts’;
const server = serve({ port: 3000 });
for await (const req of server) {
req.respond(“Hello world!!!”);
}
また、ラップする必要はなくなります.セキュリティ
前述のように、デコは内蔵セキュリティを持っています.
しかし、これはDEOアプリケーションが常に確保されることを意味しません.
これは単にdenoアプリケーションがあなたのファイルシステム、ネットワークと環境をコントロールしていないことを意味します.
たとえば、アプリケーションを実行するとき
deno run server.ts
Compile file:///home/sharein/Desktop/deno_samples/server.ts
Download https://deno.land/[email protected]/http/server.ts
.
.
.
Download https://deno.land/[email protected]/http/http_status.ts
Download https://deno.land/[email protected]/bytes/mod.ts
error: Uncaught PermissionDenied: network access to "0.0.0.0:3000", run again with the --allow-net flag
at unwrapResponse ($deno$/ops/dispatch_json.ts:43:11)
at Object.sendSync ($deno$/ops/dispatch_json.ts:72:10)
at Object.listen ($deno$/ops/net.ts:51:10)
at listen ($deno$/net.ts:152:22)
at serve (https://deno.land/[email protected]/http/server.ts:261:20)
at file:///home/sharein/Desktop/deno_samples/server.ts:3:16
上記のエラーは、ネットワークにアクセスする許可を与えずにサーバを実行できないことを明確に示します.スクリプトは、
deno run --allow-net server.ts
この場合は--allow-net
ネットワークへのアクセス許可を提供します.同様にアクセス許可を(--allow-read)
と書き込み(--allow-write)
.結論
あなたはdenoに切り替える必要があります、それは完全にあなた次第です.
しかし、DENOバージョン1.0は最近リリースされました、そして、ちょうどそれが主要なリリースであるので、それはそれが生産準備ができているというわけではありません.
それは非常に新しいとアクティブな開発の下、今はパッケージの生態系に飛び込む時間です.
ノードの置換になるかどうかはわかりません.唯一の時間は、それに答えることができます.
Reference
この問題について(ノード-ノード.js), 我々は、より多くの情報をここで見つけました https://dev.to/iamsharein/deno-nextgen-node-js-4eegテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol