
واجهة مسؤول MongoDB المستندة إلى الويب مكتوبة مع Node.js ، Express ، و Bootstrap 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
بشكل افتراضي ، يتم استخدام config.default.js حيث تكون مصادقة الوصول الأساسية هي admin : pass . من الواضح أن هذا ليس آمنًا ، وهناك تحذيرات في وحدة التحكم.
لتكوين:
انسخ YOUR_PATH/node_modules/mongo-express/config.default.js في ملف جديد يسمى YOUR_PATH/node_modules/mongo-express/config.js .
ملاحظة: سيعتمدك على تكوين مستخدم نظام التشغيل الحالي الخاص بك ونظام التشغيل. يمكنك رؤيته في نص الإخراج المعروض بعد تنفيذ تثبيت NPM.
املأ تفاصيل اتصال MongoDB وأي خيارات أخرى تريد تغييرها في config.js .
ستحتاج أيضًا إلى إنشاء ملف .env مع المتغيرات لأسرار ملفات تعريف الارتباط والجلسة ، فهذه مجرد قيم افتراضية
ME_CONFIG_SITE_COOKIESECRET: 'cookiesecret',
ME_CONFIG_SITE_SESSIONSECRET: 'sessionsecret',
لتشغيل:
cd YOUR_PATH/node_modules/mongo-express/ && node app.js
أو إذا قمت بتثبيتها على مستوى العالم ، فيمكنك البدء على الفور في التعبير عن Mongo مثل هذا:
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 | عرض مساعدة لخيارات الأوامر |
لتركيب كـ Express 4 Middware (انظر 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))
تأكد من أن لديك حاوية mongoDB قيد التشغيل على شبكة Docker ( --network some-network أدناه) مع- --name أو- --network-alias تم تعيينها على mongo . بدلاً من ذلك ، قم بتعيين سلسلة الاتصال ME_CONFIG_MONGODB_URL على الاتصال المناسب لحاوية MongoDB الخاصة بك على شبكة Docker الخاصة بك.
استخدم صورة Docker Hub:
$ 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 | قم بإزالة الحد الأقصى لـ 100 ميجابايت من ذاكرة الوصول العشوائي على كل مرحلة خط أنابيب التجميع. |
ME_CONFIG_MONGODB_TLS | false | استخدم شهادة عميل TLS |
ME_CONFIG_MONGODB_TLS_ALLOW_CERTS | true | التحقق من صحة شهادة خادم Mongod مقابل CA |
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 | / | اضبط Baseurl السريع لتخفيف التثبيت في دليل فرعي. تذكر أن تشمل القطع المائلة الرائدة والخليفة. |
ME_CONFIG_HEALTH_CHECK_PATH | /status | اضبط مسار Mongo Express HealthCheck. تذكر أن تضيف القطع المائلة للأمام في البداية. |
ME_CONFIG_SITE_COOKIESECRET | cookiesecret | السلسلة المستخدمة من قبل ملفات تعريف الارتباط الوسيطة لتوقيع ملفات تعريف الارتباط. |
ME_CONFIG_SITE_SESSIONSECRET | sessionsecret | السلسلة المستخدمة للتوقيع على ملف تعريف الارتباط معرف الجلسة بواسطة الوسيطة الصريحة للجلسة. |
ME_CONFIG_BASICAUTH | false | تم إهماله ، استخدم ME_CONFIG_BASICAUTH_ENABLED بدلاً من ذلك. |
ME_CONFIG_BASICAUTH_ENABLED | false | تمكين المصادقة الأساسية. أرسل سلاسل: "true" أو "false" . |
ME_CONFIG_BASICAUTH_USERNAME | `` | mongo-express اسم تسجيل الدخول إلى الويب. إذا لم يتم تعريفه ، فإن admin هو اسم المستخدم. |
ME_CONFIG_BASICAUTH_USERNAME_FILE | `` | إصدار ملف من ME_CONFIG_BASICAUTH_USERNAME |
ME_CONFIG_BASICAUTH_PASSWORD | `` | كلمة مرور تسجيل الدخول إلى Mongo-express. إذا لم يتم تعريفه ، pass هو كلمة المرور. |
ME_CONFIG_BASICAUTH_PASSWORD_FILE | `` | إصدار الملف من ME_CONFIG_BASICAUTH_PASSWORD |
ME_CONFIG_OIDCAUTH_ENABLED | false | تمكين المصادقة OpenIdConnect. أرسل سلاسل: "true" أو "false" . |
ME_CONFIG_OIDCAUTH_ISSUER | `` | OAUTH2 المصدر. عنوان URL الجذر إلى Metadata OpenIdConnect على سبيل المثال. "<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. يتم استخدامه لبناء عنوان 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 | إذا تم ضبطه على صحيح ، يتم استخدام تخطيط صفحة بديلة باستخدام عرض النافذة الكامل. |
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 | تمكين الشبكات من إدارة الملفات التي تم تحميلها. |
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 أو أي عنوان URL/المنفذ الذي أدخلته في التكوين الخاص بك (إذا كان تشغيله مستقلًا) أو أيا كان config.site.baseUrl (إذا كان يتصاعد كبرنامج متوسط).
المتطلبات المسبقة:
الاستخدام:
باستخدام Mongo Express Docker Extension ، من السهل إعداد Mongo Express على سطح مكتب Docker بنقرة واحدة فقط.
انتشر إلى IBM Cloud
القيام يدويًا:
examples/ibm-cloud/manifest.yml لتناسب تطبيق IBM Cloud وبيئة الخدمةالقيام تلقائيا:
ثم ، اتخذ الإجراء التالي لتخصيص بيئتك:
config.js استنادًا إلى config.default.jsdbLabel وفقًا لخدمة MongoDB التي تم إنشاؤهاbasicAuth ، لا للحفاظ على القيم الافتراضية الاستخدام مع حزمة mongo-express
إذا قمت بتثبيت mongo-express كحزمة ، فقم بتثبيت التبعية express-openid-connect :
yarn add express-openid-connectقم بإعداد تطبيق OAUTH2
يدعم التطبيق الحالي منحة تدفق رمز 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 لإعادة توجيه التطبيق ، والتي يمكن الحصول عليها عن طريق إلحاق /callback بعنوان URL قاعدة التطبيق: على سبيل المثال. https://example.com/mongo-express/callback
key value ) ويعد كائن MongoDB Find () ، مع تعيين الإسقاط إلى {} لذا إرجاع جميع الأعمدة.find /كائنات البحث projection مباشرة إلى mongodb db.collection.find(query, 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 من خلال جهاز Virtual JavaScript ، بحيث يمكن استخدام واجهة الويب لتنفيذ JavaScript الضارة على الخادم .
يجب استخدام Mongo-Express فقط بشكل خاص لأغراض التطوير .
يتم دعم أنواع بيانات BSON التالية في محرر/عارض مستندات Mongo-Express.
أنواع JavaScript الأصلية
الأوتار والأرقام والقوائم ، المنطقية ، الفارغ ، إلخ.
جميع الأرقام في JavaScript هي نقاط عائمة 64 بت.
ObjectId/ObjectID
ObjectId()
ينشئ نوع معرف كائن جديد.
ObjectId(id)
استخدم معرف الكائن مع السلسلة السداسية المكونة من 24 رقماً.
isodate
ISODate()
ينشئ كائن isodate جديد مع الوقت الحالي.
يمكن أيضًا استخدام new Date() (لاحظ الكلمة الرئيسية new هناك).
ISODate(timestamp)
يستخدم كائن isodate مع الطابع الزمني المحدد.
uuid
UUID()
يخلق Uuid V4 جديد.
يمكن أيضًا استخدام new UUID() (لاحظ الكلمة الرئيسية new هناك).
UUID(uuid)
يستخدم UUID V4 مع سلسلة سداسية عشرية مكونة من 24 رقما.
مثال: UUID("dee11d4e-63c6-4d90-983c-5c9f1e79e96c") أو UUID("dee11d4e63c64d90983c5c9f1e79e96c")
DBREF/DBREF
DBRef(collection, objectID)
DBRef(collection, objectID, database)
معرف الكائن هو سلسلة المعرف ، وليس نوع ObjectID.
قيمة قاعدة البيانات اختيارية.
الطابع الزمني
Timestamp()
ينشئ كائن طابع زمني جديد بقيمة 0.
Timestamp(time, ordinal)
مثال: Timestamp(ISODate(), 0) .
راجع http://www.mongodb.org/display/docs/timestamp+data+type لمزيد من المعلومات حول نوع بيانات الطابع الزمني.
شفرة
Code(code)
يمكن أن يكون الكود وظيفة JavaScript الأصلية ، أو يمكن أن تكون سلسلة.
لا يتم دعم تحديد نطاق/سياق.
مينكي
MinKey()
ماكسكي
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")
}