node.jsのプロトタむプ党䜓フレヌムワヌク

凊理甚 node.jsでプログラミングしおいるが、コヌドでク゚リルヌティングを曞くのにうんざりしおいる堎合、ビゞネス目的でグロヌバル倉数を䜿甚するこずに偏芋はなく、過床の自由は倧衆に有害であるこずに同意する堎合、党䜓䞻矩の週末グルヌプはあなたのための代替プラットフォヌムのプロトタむプを甚意したしたWebアプリケヌション開発 。 党䜓䞻矩スタむルは、requireを通じおアプリケヌションにフレヌムワヌクを埋め蟌むこずを意味するのではなく、フレヌムワヌク構造にアプリケヌションを埋め蟌むこずを意味したす。アプリケヌションコヌドのフラグメントは、すべおのステップで远加の制限ず課せられたコヌドおよびデヌタ構造を凊理したす。 ノヌドの開発者が䞻匵するように、 専門家よりも少ない人が高性胜システムを開発できるずいう事実に぀いお-さお、ここであなたはあなたが圌らがどんなシステム、特に非同期で、どのステップで倱われたコヌルバックずメモリリヌクをするかを理解しおいたす。 愚か者からの保護ずいう点では、この奇跡のプロトタむプは実珟したせん。 そしおもちろん、私はあなたから倚くの建蚭的な批刀を期埅しおいたす。プロトタむプは原油なので、過去10幎間にわたっお私たちのチヌムから倚くの抂念的なアむデアを集めおきたした。 Impressずいう名前でさえ2日前に登堎したした、そしお、はい-これは最も難しい質問です。

機胜ず機胜



近い将来の蚈画



むンストヌルずセットアップ


1. npm  https://npmjs.org/package/impress  から配眮し たす
$ npm install impress 

2.プロゞェクトテンプレヌトをコピヌしたす -/ node_modules / impress / examples / copyContentToProjectFolderディレクトリの内容がプロゞェクトディレクトリserver.js、setup.js、config.js、sitesディレクトリに転送されたす。

3. config.jsファむルを蚭定しお、構成セクションを通過したす。
デヌタベヌス -起動時に自動的に開かれ、リストされたコレクションにアクセスできるデヌタベヌスdb.dbName.collectionName.find...。 蚭定䟋
 dbName: { url: "mongodb://localhost:27017/dbName", collections: ["collname1", "collname2"] } 

セッション -名前は、セッションCookieを生成するための長さず文字セット、セッションを氞続的に保存するためのベヌスの名前です。
クラスタヌ -むンスタンス戊略のセットアップマルチスレッドタむプ。
サヌバヌ -名前付きサヌバヌむンタヌフェヌス/ポヌト、各ホストフィヌルド-このサヌバヌから指定する必芁がある名前付きホストの配列、静的-静的をレンダリングするためのファむルマスクの配列、たずえば["/ css / *"、 "/ images / *" 、「/ js / *」、「/ favicon.ico」、「/ index.html」]。
hosts-名前付きホスト仮想ホスト。たずえば、「* .myhost.com」のように、呜名にマスクを䜿甚できたす。
routes-名前付きリク゚スト転送ルヌト。

4. MongoDBでデヌタ構造を初期化するには、ノヌドsetup.jsを実行しお「y」を抌したす。

5. server.jsファむルに、远加の初期化コヌドを蚘述できたす。
 require('impress'); impress.init(function() { //    }); 

6.サヌバヌを起動したす
 $ node server.js 

䟋を芋る


1.テンプレヌトサヌバヌの実行䞭にhttp// localhostを開きたす
ここでテンプレヌトを芋おください/sites/localhost/html.template
アプリケヌションを芋お、「アカりントを䜜成」、「サむンむン」をクリックしたす

2.ロゞックの継承で「left.template」 テンプレヌトをオヌバヌラむドする䟋、 httpを開く// localhost / override
次のテンプレヌトをご芧ください/sites/localhost/override/left.template
基本的なテンプレヌトはこちら/sites/localhost/html.template
サヌバヌロゞックハン​​ドラヌ/sites/localhost/request.js
3. JSON応答を䜿甚したAPIメ゜ッドの䟋 。http//localhost/api/examples/methodName.jsonを参照しおください。
コヌドはここにありたす/sites/localhost/api/examples/methodName.json/get.js
4.匿名セッションを開始する䟋  http//localhost/api/auth/anonymousSession.json
およびコヌド/sites/localhost/api/auth/anonymousSession.json/get.js
5. POSTリク゚ストの䟋 「Email」パラメヌタヌを䜿甚しおlocalhost / api / auth / regvalidation.jsonでPOSTを䜜成するずいう考えから
およびコヌド/sites/localhost/api/auth/regvalidation.json/post.js
6. MongoDBデヌタベヌスぞのアクセス䟋 :: http//localhost/api/examples/getUsers.json
コヌドは次のずおりです/sites/localhost/api/examples/getUsers.json/get.js
たたはここでは正しいです
 module.exports = function(req, res, callback) { res.context.data = []; db.impress.users.find({}).toArray(function(err, nodes) { res.context.data = nodes; callback(); }); } 

参照資料


Github https : //github.com/tshemsedinov/impress
npm https : //npmjs.org/package/impress

UPD Hetzner EX4ホスティングIntel Core i7-2600 Quad-Core、16 GB DDR3 RAMでの非垞に倱瀌なテストでは、5ファむルのテンプレヌトずデヌタベヌスぞの単玔なリク゚ストで毎秒22,572のリク゚ストが発生したした。

Source: https://habr.com/ru/post/J182714/


All Articles