
node.js、Express、およびBootstrap 5で書かれたWebベースのMongoDB管理インターフェイス5
| ホームページ | データベースビュー | コレクションビュー | ドキュメントの編集 |
|---|---|---|---|
これらのスクリーンショットはバージョン0.30.40からのものです。その他のスクリーンショットについては、アルバムを表示:(サーバーステータス、データベースビューなど..)https://imgur.com/a/9vhsf
最新バージョン(マスターブランチ)でテストまたは開発するには、このgitリポジトリを使用してインストールできます。
npm i mongo-express@github:mongo-express/mongo-express
OR
yarn add mongo-express@github:mongo-express/mongo-express
OR
pnpm add mongo-express@github:mongo-express/mongo-express
config.default.jsをconfig.jsにコピーし、デフォルトのプロパティを編集してローカル環境に適合します
以下を使用して開発ビルドを実行します。
npm run start-dev
OR
yarn start-dev
OR
pnpm run start-dev
Mongo-Expressにはnode.js v18.18以降が必要です。
インストールするには:
npm i -g mongo-express
OR
yarn add -g mongo-express
OR
pnpm add -g mongo-express
または、グローバル以外のコピーをインストールする場合:
npm i mongo-express
OR
yarn add mongo-express
OR
pnpm add mongo-express
デフォルトでは、基本アクセス認証がadmin : passである場合、 config.default.js使用されます。これは明らかに安全ではなく、コンソールには警告があります。
設定するには:
YOUR_PATH/node_modules/mongo-express/config.default.jsはYOUR_PATH/node_modules/mongo-express/config.jsという新しいファイルにコピーします。
注: Your_Pathは、現在のOSユーザーとシステムの構成によって異なります。 NPMインストールを実行した後に表示される出力テキストで確認できます。
mongodb接続の詳細と、 config.jsで変更するその他のオプションを入力します。
また、Cookieとセッションの秘密の変数を備えた.ENVファイルを作成する必要があります。これらは単なるデフォルト値です
ME_CONFIG_SITE_COOKIESECRET: 'cookiesecret',
ME_CONFIG_SITE_SESSIONSECRET: 'sessionsecret',
実行する:
cd YOUR_PATH/node_modules/mongo-express/ && node app.js
または、グローバルにインストールした場合は、すぐにこのようなMongo-Expressを開始できます。
mongo-express
いくつかの構成オプションを追加できます。例:
node app.js --url mongodb://127.0.0.1:27017
または:
mongo-express --URL mongodb://127.0.0.1:27017
構成オプション:
| オプション | 短い | 説明 |
|---|---|---|
--version | -V | バージョン番号を出力します |
--url <url> | -U <url> | 接続文字列URL( <url>例: mongodb://127.0.0.1:27017 ) |
--admin | -a | 管理者として認証を有効にします |
--port <port> | -p <port> | 指定されたポートで聞く(デフォルト<port>は8081です) |
--help | -h | コマンドオプションのヘルプを表示します |
4つのミドルウェアとしてマウントするには( node_modules/mongo-express/app.jsを参照):
var mongo_express = require('mongo-express/lib/middleware')
var mongo_express_config = require('./mongo_express_config')
app.use('/mongo_express', mongo_express(mongo_express_config))
mongoに設定された--nameまたは--network-aliasを備えたDockerネットワーク(以下の--network some-network )に走っているMongoDBコンテナがあることを確認してください。または、接続文字列ME_CONFIG_MONGODB_URL Dockerネットワーク上のMongoDBコンテナの適切な接続に設定します。
Dockerハブ画像を使用してください。
$ docker run -it --rm -p 8081:8081 --network some-network mongo-expressソースからビルド:
プロジェクトディレクトリから画像を作成し、画像を実行します。
$ docker build -t mongo-express .
$ docker run -it --rm -p 8081:8081 --network some-network mongo-express次の環境変数を使用して、コンテナの構成を変更できます。
| 名前 | デフォルト | 説明 |
|---|---|---|
ME_CONFIG_MONGODB_URL | mongodb://admin:pass@localhost:27017/db?ssl=false | |
ME_CONFIG_MONGODB_ENABLE_ADMIN | false | 管理者アクセスを有効にします。文字列を送信: "true"または"false" 。 |
ME_CONFIG_MONGODB_AUTH_USERNAME | admin | データベースのユーザー名( ENABLE_ADMIN "false"の場合にのみ必要です)。 |
ME_CONFIG_MONGODB_AUTH_PASSWORD | pass | データベースパスワード( ENABLE_ADMIN "false"の場合にのみ必要です)。 |
ME_CONFIG_MONGODB_ALLOW_DISK_USE | false | 各集約パイプラインステージでRAMの100 MBの制限を削除します。 |
ME_CONFIG_MONGODB_TLS | false | TLSクライアント証明書を使用します |
ME_CONFIG_MONGODB_TLS_ALLOW_CERTS | true | CAに対してMongodサーバー証明書を検証します |
ME_CONFIG_MONGODB_TLS_CA_FILE | `` | CA証明書ファイル |
ME_CONFIG_MONGODB_TLS_CERT_FILE | `` | TLSクライアント証明書ファイル |
ME_CONFIG_MONGODB_TLS_CERT_KEY_FILE | `` | TLSクライアント証明書キーファイル |
ME_CONFIG_MONGODB_TLS_CERT_KEY_FILE_PASSWORD | `` | TLSクライアント証明書キーファイルパスワード |
ME_CONFIG_MONGODB_URL_FILE | `` | me_config_mongodb_urlのファイルバージョン |
ME_CONFIG_MONGODB_AWS_DOCUMENTDB | false | これにより、AWS documentDB互換性(実験的)が可能になります |
ME_CONFIG_SITE_BASEURL | / | Express Baseurlを設定して、サブディレクトリでの取り付けを容易にします。リーディングとトレーリングのスラッシュを含めることを忘れないでください。 |
ME_CONFIG_HEALTH_CHECK_PATH | /status | Mongo Express HealthCheckパスを設定します。最初にフォワードスラッシュを追加することを忘れないでください。 |
ME_CONFIG_SITE_COOKIESECRET | cookiesecret | Cookie-ParserミドルウェアがCookieに署名するために使用される文字列。 |
ME_CONFIG_SITE_SESSIONSECRET | sessionsecret | Express-Session MiddlewareによるセッションID Cookieに署名するために使用される文字列。 |
ME_CONFIG_BASICAUTH | false | 非推奨、代わりにME_CONFIG_BASICAUTH_ENABLED使用してください。 |
ME_CONFIG_BASICAUTH_ENABLED | false | 基本認証を有効にします。文字列を送信: "true"または"false" 。 |
ME_CONFIG_BASICAUTH_USERNAME | `` | Mongo-Express Webログイン名。定義されていない場合、 adminはユーザー名です。 |
ME_CONFIG_BASICAUTH_USERNAME_FILE | `` | ME_CONFIG_BASICAUTH_USERNAMEのファイルバージョン |
ME_CONFIG_BASICAUTH_PASSWORD | `` | Mongo-Express Webログインパスワード。定義されていない場合、 passパスワードです。 |
ME_CONFIG_BASICAUTH_PASSWORD_FILE | `` | ME_CONFIG_BASICAUTH_PASSWORDのファイルバージョン |
ME_CONFIG_OIDCAUTH_ENABLED | false | OpenIDConnect認証を有効にします。文字列を送信: "true"または"false" 。 |
ME_CONFIG_OIDCAUTH_ISSUER | `` | OAUTH2発行者。 OpenIDConnectメタデータのルートURL "<issuer>/.well-known/openid-configuration" |
ME_CONFIG_OIDCAUTH_ISSUER_FILE | `` | ME_CONFIG_OIDCAUTH_ISSUERのファイルバージョン |
ME_CONFIG_OIDCAUTH_CLIENTID | `` | oauth2 clientid。クライアントはプライベートであり、承認コードフローグラントを実行することを許可する必要があります。 |
ME_CONFIG_OIDCAUTH_CLIENTID_FILE | `` | ME_CONFIG_OIDCAUTH_CLIENTIDのファイルバージョン |
ME_CONFIG_OIDCAUTH_CLIENTSECRET | `` | OAUTH2クライアントシークレット。 |
ME_CONFIG_OIDCAUTH_CLIENTSECRET_FILE | `` | ME_CONFIG_OIDCAUTH_CLIENTSECRETのファイルバージョン |
ME_CONFIG_OIDCAUTH_SECRET | `` | 承認コードフローを開始するために図書館が使用するランダムな秘密(必須) |
ME_CONFIG_OIDCAUTH_SECRET_FILE | `` | ME_CONFIG_OIDCAUTH_SECRET_FILEのファイルバージョン |
ME_CONFIG_OIDCAUTH_BASEURL | `` | OAUTH2ベースURL。リダイレクトURLを構築するために使用されます。 "<base-url>/callback" 。指定されていない場合ME_CONFIG_SITE_BASEURL使用されます。 |
ME_CONFIG_OIDCAUTH_BASEURL_FILE | `` | ME_CONFIG_OIDCAUTH_BASEURLのファイルバージョン |
ME_CONFIG_REQUEST_SIZE | 100kb | 最大Mongo更新ペイロードサイズの構成に使用します。このサイズを超えるCRUD操作は、ボディパーサーの制限により失敗します。 |
ME_CONFIG_OPTIONS_READONLY | false | readonlyが真である場合、執筆のコンポーネントは表示されません。 |
ME_CONFIG_OPTIONS_FULLWIDTH_LAYOUT | false | Trueに設定すると、フルウィンドウの幅を使用して代替ページレイアウトが使用されます。 |
ME_CONFIG_OPTIONS_PERSIST_EDIT_MODE | false | trueに設定した場合は、[保存]ボタンをクリックしてから同じページに残ります |
ME_CONFIG_OPTIONS_NO_DELETE | false | Nodeleteが真である場合、削除のコンポーネントが表示されません。 |
ME_CONFIG_SITE_SSL_ENABLED | false | SSLを有効にします。 |
ME_CONFIG_SITE_SSL_CRT_PATH | | SSL証明書ファイル。 |
ME_CONFIG_SITE_SSL_KEY_PATH | | SSLキーファイル。 |
ME_CONFIG_SITE_GRIDFS_ENABLED | false | GRIDFSがアップロードされたファイルを管理できるようにします。 |
ME_CONFIG_DOCUMENTS_PER_PAGE | 10 | コレクションビューで一度に見たいドキュメントの数 |
PORT | 8081 | Mongo-Expressが実行されるポート。 |
VCAP_APP_HOST | localhost | Mongo-Expressが着信接続について聴くことに対処します。 |
例:
docker run -it --rm
--name mongo-express
--network web_default
-p 8081:8081
-e ME_CONFIG_BASICAUTH_ENABLED="false"
-e ME_CONFIG_MONGODB_URL="mongodb://mongo:27017"
mongo-express
この例はdocker-composeの典型的なコンテナ名にリンクし、エディターの色のテーマを変更し、基本認証を無効にします。
使用するには:
コンテナから公開されているデフォルトのポートは8081なので、 http://localhost:8081またはconfig(sandaloneを実行している場合)またはconfig.site.baseUrl (ミドルウェアとして取り付けている場合)に入力した任意のURL/ポートにアクセスしてください。
前提条件:
使用法:
Mongo Express Docker Extensionを使用することにより、DockerデスクトップでMongo Expressを1回だけクリックして簡単にセットアップできます。
IBMクラウドに展開します
手動で行う:
examples/ibm-cloud/manifest.yml IBMクラウドアプリとサービス環境に適合するには自動的に実行:
次に、次のアクションを実行して環境にカスタマイズします。
config.default.jsに基づいてconfig.jsファイルを作成しますdbLabel変更する必要があるかどうかを確認しますbasicAuthプロパティを変更してください。デフォルト値を維持しないでください mongo-expressパッケージでの使用
mongo-expressパッケージとしてインストールする場合は、 express-openid-connect依存関係をインストールします。
yarn add express-openid-connectOAUTH2アプリケーションをセットアップします
現在の実装は、OAUTH2認証コードフローグラントをサポートしています。これを機能させるために、アイデンティティプロバイダーにクライアントをセットアップし、パラメーターをアプリケーションに渡す必要があります。
ME_CONFIG_OIDCAUTH_ENABLED=true
ME_CONFIG_OIDCAUTH_BASEURL=https:// < domain > / < base-url >
ME_CONFIG_OIDCAUTH_ISSUER= < authority >
ME_CONFIG_OIDCAUTH_CLIENTID= < client-id >
ME_CONFIG_OIDCAUTH_CLIENTSECRET= < client-secret > # Optional
ME_CONFIG_OIDCAUTH_SECRET= < random-generated-string >
ME_CONFIG_SITE_COOKIESECRET= < client-secret >
ME_CONFIG_SITE_BASEURL=/ < base-url >クライアントを登録するには、アプリケーションのリダイレクトURIが必要になります。これは、アプリケーションベースURLへのAppending /callbackによって取得できます。 https://example.com/mongo-express/callback
keyとvalue )を使用し、mongodb find()オブジェクトを準備し、 {}にプロジェクションが設定されているため、すべての列を返します。db.collection.find(query, projection)に直接、 findおよびprojectionフィールド/オブジェクトを通過します。 findオブジェクトはクエリが発生する場所であり、 projectionオブジェクトはどの列が返されるかを決定します。例と正確な使用については、mongodb db.collection.find()ドキュメントを参照してください。
プルリクエストはいつでも大歓迎です! ?
document._idプロパティが必要です We are currently trying to use Cypress, to open cypress use the command `cypress open`
To instrument the code to allow the E2E coverage to run, please run this command: `yarn nyc instrument --compact=false lib instrumented`
JSONドキュメントは、JavaScript仮想マシンを介して解析されるため、 Webインターフェイスを使用してサーバーで悪意のあるJavaScriptを実行できます。
Mongo-Expressは、開発目的でのみ個人的に使用する必要があります。
次のBSONデータ型は、Mongo-Express Document Editor/Viewerでサポートされています。
ネイティブJavaScriptタイプ
文字列、数字、リスト、ブール人、ヌルなど。
JavaScriptのすべての数値は、64ビットのフローティングポイントです。
ObjectId/objectId
ObjectId()
新しいオブジェクトIDタイプを作成します。
ObjectId(id)
指定された24桁の16進数文字列でオブジェクトIDを使用します。
アイソデート
ISODate()
現在の時刻で新しい等型オブジェクトを作成します。
new Date()も使用できます(そこにnewキーワードに注意してください)。
ISODate(timestamp)
指定されたタイムスタンプを使用してIsodateオブジェクトを使用します。
uuid
UUID()
新しいUUID V4を作成します。
new UUID()を使用することもできます(そこにnewキーワードに注意してください)。
UUID(uuid)
与えられた24桁の16進数文字列でUUID V4を使用します。
例: UUID("dee11d4e-63c6-4d90-983c-5c9f1e79e96c")またはUUID("dee11d4e63c64d90983c5c9f1e79e96c")
dbref/dbref
DBRef(collection, objectID)
DBRef(collection, objectID, database)
オブジェクトIDはID文字列であり、ObjectIDタイプではありません。
データベース値はオプションです。
タイムスタンプ
Timestamp()
値は0の新しいタイムスタンプオブジェクトを作成します。
Timestamp(time, ordinal)
例: Timestamp(ISODate(), 0) 。
タイムスタンプデータタイプの詳細については、http://www.mongodb.org/display/docs/timestamp+data+typeを参照してください。
コード
Code(code)
コードは、ネイティブのJavaScript関数であるか、文字列にすることができます。
スコープ/コンテキストの指定はサポートされていません。
ミンキー
MinKey()
Maxkey
MaxKey()
シンボル
Symbol(string)
以下は、Mongo-Expressで読み取ることができるドキュメントの例です(読みやすさのために切り捨てられたメディア):
{
"_id": ObjectId(),
"dates": {
"date": ISODate("2012-05-14T16:20:09.314Z"),
"new_date": ISODate(),
"alternative": new Date()
},
"photo": "data:image/jpeg;base64,/9j/4...",
"video": "data:video/webm;base64,GkXfo...",
"audio": "data:audio/ogg;base64,T2dnUw...",
"bool": true,
"string": "hello world!",
"list of numbers": [
123,
111e+87,
4.4,
-12345.765
],
"reference": DBRef("collection", "4fb1299686a989240b000001"),
"ts": Timestamp(ISODate(), 1),
"minkey": MinKey(),
"maxkey": MaxKey(),
"func": Code(function() { alert('Hello World!') }),
"symbol": Symbol("test")
}