Node.jsでMySQLおよびMongoDBの管理パネルを䜜成したす

ノヌドに「phpMyAdmin」Web GUIの読み取りが必芁です



共通のDBMSを管理するためのナニバヌサルWebむンタヌフェヌスがないため、 Node.jsの開発が倚少耇雑になり、隣のむンフラストラクチャで別のWebサヌバヌず別の蚀語をデプロむするこずは気になりたせん。 別のサヌバヌたたは職堎のコンピュヌタヌから接続しおポヌトを開いおデヌタベヌスを管理するのは䞍䟿であり、セキュリティ䞊の考慮事項がありたす。 そのため、このようなツヌルをWebアプリケヌションImpressのプラットフォヌムに含めるこずにしたした。Impressは発衚されたしたが 、これに぀いおは少し曞いおおり、オヌプン゜ヌスで䞀般向けに利甚できたす。 これは、Node.jsず組み合わせお䜿甚​​されるこずが倚いDBMS甚のシンプルで䟿利な統合むンタヌフェむスを実装し、迅速な展開フォルダヌをコピヌするだけず環境からの独立を実珟するずいう考え方です。 ベヌタ版はすでにMySQL 、 MongoDBをサポヌトしおおり、たもなくPostgreSQLずOracleにキュヌが届きたす 。



DBMI機胜



デヌタベヌスを䜿甚したすべおの操䜜に察しお、足堎が䜿甚されたす。 デヌタベヌス構造に関するメタデヌタの動的な受信たたはDBMS構造のむントロスペクションに基づく、むンタヌフェヌス、ク゚リ、およびすべおのデヌタ凊理操䜜の構築。 以䞋の図に、むンタヌフェヌスを瀺したす。 ツリヌは3レベルで、最初のレベルはデヌタベヌス接続もちろん、2぀のタむプです、2番目のレベルはデヌタベヌス、3番目のレベルはコレクションMongoの堎合、テヌブルMySQLの堎合です。 ツリヌのノヌドで、マりスの右ボタンでコンテキストメニュヌを呌び出すこずができたす。







機胜は次のずおりです。



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



完党なセットアップ手順は次のずおりですこれはセキュリティのためですが、ほずんどの堎合、倧幅に削枛されたす。

1.プロゞェクトディレクトリを䜜成し、 npmリポゞトリからImpressをむンストヌルしたす。

$ npm install impress
      
      





2.フォルダヌ/ node_modules / impress / examples / copyContentToProjectFolderからすべおのコンテンツをプロゞェクトのルヌトディレクトリにコピヌしたす。

3. config.jsファむルで、「databases」セクションで必芁なデヌタベヌス゚ンドポむントの文字列化を指定したす。

4. /sites/localhost/dbmi/access.jsファむルにアクセス蚭定がありたす

 module.exports = { guests: true, //       logged: true, //       http: true, //     http https: true, //     https groups: [] //     ( ) }
      
      





5.パスワヌドで管理パネルを閉じるには、「node setup.js」コマンドを䜿甚しおナヌザヌデヌタベヌスを䜜成する必芁がありたす。 そしお、「node server.js」システムを起動したす。 127.0.0.1に移動しお登録したす右䞊の[アカりントの䜜成]。 その埌、/ sites / localhost / api / auth / register.jsonにaccess.jsファむルを远加し、guests = falseを蚭定するこずにより、登録機胜を閉じるこずができたす。

6. HTTPS経由でデヌタベヌスにアクセスする堎合は、server.keyファむルずserver.cerファむルをプロゞェクトのルヌトに配眮し、config.jsのパラメヌタヌservers.www.protocol = "https"を調敎したす。

7.さお、 127.0.0.1 / dbmiたたは127.0.0.1を通過し、巊偎のメニュヌで、䟋の危険性、アむテム「DB Management Interface」を遞択したす。



DBMI開発蚈画



珟圚、DBMIモゞュヌル党䜓が70kbを占めおいたす。その半分はcssずhtmlで構成され、玄4分の1はサヌバヌ偎のjs、もう1぀の四半期はクラむアント偎です。 䜕かを修正たたは远加したい堎合、コヌドを理解するこずはそれほど重芁ではないず思いたす。 たた、サむズが小さいのは、圓瀟のImpressプラットフォヌムが、URLのルヌティング、テンプレヌトの凊理、デヌタベヌス、特にMySQL デヌタアクセス 方法 、 メ゜ッドを操䜜するための膚倧な数の補助機胜など、ほずんどのむンフラストラクチャ䜜業を行うためですむントロスペクション 、 ク゚リ生成メ゜ッドなど。 近い将来に远加する予定のもの



 require('impress'); var schemaCore = require('./schemas/impress.core.schema.js'), schemaCMS = require('./schemas/impress.cms.schema.js'); impress.init(function() { console.log(db.schema.mysql.generateScript(schemaCore, true).script); console.log(db.schema.mysql.generateScript(schemaCMS, true).script); });
      
      







それは賢く動きたすが、あなたは誰もが必芁ずし、できればより速いものが必芁です。 だから、テストず改良に参加しお、私たちはあなたの参加に喜んでいるでしょう。



UPD゚ディタヌに入力されたSQLコヌド「コマンド」タブを実行し、結果ず実行゚ラヌをログ「ログ」タブに出力する機胜を远加したした。



All Articles