
Una interfaz de administrador de MongoDB basada en la web escrita con Node.js, Express y Bootstrap 5
| Página de inicio | Vista de base de datos | Vista de colección | Edición de un documento |
|---|---|---|---|
Estas capturas de pantalla son de la versión 0.30.40 Vea el álbum para más capturas de pantalla: (estado del servidor, vistas de bases de datos, etc.) https://imgur.com/a/9vhsf
Para probar o desarrollar con la última versión (rama maestra ), puede instalar utilizando este repositorio de 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
Copiar config.default.js a config.js y editar la propiedad predeterminada para adaptarse a su entorno local
Ejecute la construcción de desarrollo usando:
npm run start-dev
OR
yarn start-dev
OR
pnpm run start-dev
Mongo-express requiere nodo.js v18.18 o superior.
Para instalar:
npm i -g mongo-express
OR
yarn add -g mongo-express
OR
pnpm add -g mongo-express
O si desea instalar una copia no global:
npm i mongo-express
OR
yarn add mongo-express
OR
pnpm add mongo-express
Por defecto, se utiliza config.default.js donde la autenticación de acceso básico es admin : pass . Obviamente, esto no es seguro, y hay advertencias en la consola.
Para configurar:
Copie YOUR_PATH/node_modules/mongo-express/config.default.js en un nuevo archivo llamado YOUR_PATH/node_modules/mongo-express/config.js .
Nota: Your_Path dependerá de la configuración actual del usuario y el sistema del sistema operativo. Puede verlo en el texto de salida que se muestra después de ejecutar la instalación de NPM.
Complete sus detalles de conexión de MongoDB y cualquier otra opción que desee cambiar en config.js .
También necesitará crear un archivo .env con las variables para sus secretos de cookie y sesión, estos son solo valores predeterminados
ME_CONFIG_SITE_COOKIESECRET: 'cookiesecret',
ME_CONFIG_SITE_SESSIONSECRET: 'sessionsecret',
Para correr:
cd YOUR_PATH/node_modules/mongo-express/ && node app.js
O si lo instaló a nivel mundial, puede iniciar inmediatamente Mongo-Express como este:
mongo-express
Puede agregar algunas opciones de configuración. Ejemplo:
node app.js --url mongodb://127.0.0.1:27017
o:
mongo-express --URL mongodb://127.0.0.1:27017
Opciones de configuración:
| Opción | Corto | Descripción |
|---|---|---|
--version | -V | emitir el número de versión |
--url <url> | -U <url> | URL de cadena de conexión ( <url> Ejemplo: mongodb://127.0.0.1:27017 ) |
--admin | -a | Habilitar la autenticación como administrador |
--port <port> | -p <port> | Escuchar en el puerto especificado (predeterminado <port> es 8081 ) |
--help | -h | Mostrar ayuda para las opciones de comando |
Para montar como expreso 4 middleware (ver 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))
Asegúrese de tener un contenedor MongoDB en una red Docker ( --network some-network a continuación) con --name o --network-alias establecido en mongo . Alternativamente, configure la conexión de conexión ME_CONFIG_MONGODB_URL a la conexión adecuada para su contenedor MongoDB en su red Docker.
Use la imagen Docker Hub:
$ docker run -it --rm -p 8081:8081 --network some-network mongo-expressConstruir desde la fuente:
Construya una imagen del directorio del proyecto, luego ejecute la imagen.
$ docker build -t mongo-express .
$ docker run -it --rm -p 8081:8081 --network some-network mongo-expressPuede usar las siguientes variables de entorno para modificar la configuración del contenedor:
| Nombre | Por defecto | Descripción |
|---|---|---|
ME_CONFIG_MONGODB_URL | mongodb://admin:pass@localhost:27017/db?ssl=false | |
ME_CONFIG_MONGODB_ENABLE_ADMIN | false | Habilitar el acceso al administrador. Enviar cadenas: "true" o "false" . |
ME_CONFIG_MONGODB_AUTH_USERNAME | admin | Nombre de usuario de la base de datos (solo necesaria si ENABLE_ADMIN es "false" ). |
ME_CONFIG_MONGODB_AUTH_PASSWORD | pass | Contraseña de la base de datos (solo necesaria si ENABLE_ADMIN es "false" ). |
ME_CONFIG_MONGODB_ALLOW_DISK_USE | false | Retire el límite de 100 MB de RAM en cada etapa de tubería de agregación. |
ME_CONFIG_MONGODB_TLS | false | Utilice el certificado de cliente TLS |
ME_CONFIG_MONGODB_TLS_ALLOW_CERTS | true | Validar el certificado del servidor Mongod contra CA |
ME_CONFIG_MONGODB_TLS_CA_FILE | `` `` | Archivo de certificado de CA |
ME_CONFIG_MONGODB_TLS_CERT_FILE | `` `` | Archivo de certificado de cliente TLS |
ME_CONFIG_MONGODB_TLS_CERT_KEY_FILE | `` `` | Archivo de clave de certificado de cliente TLS |
ME_CONFIG_MONGODB_TLS_CERT_KEY_FILE_PASSWORD | `` `` | TLS Certificado de cliente Clave del archivo Contraseña |
ME_CONFIG_MONGODB_URL_FILE | `` `` | Versión de archivo de me_config_mongodb_url |
ME_CONFIG_MONGODB_AWS_DOCUMENTDB | false | Esto permite la compatibilidad de AWS DocumentDB (experimental) |
ME_CONFIG_SITE_BASEURL | / | Establezca la base expresa para aliviar el montaje en un subdirectorio. Recuerde incluir barras de liderazgo y tardía. |
ME_CONFIG_HEALTH_CHECK_PATH | /status | Establezca la ruta Mongo Express HealthCheck. Recuerde agregar el corte hacia adelante al principio. |
ME_CONFIG_SITE_COOKIESECRET | cookiesecret | Cadena utilizada por el middleware de cookie-parser para firmar cookies. |
ME_CONFIG_SITE_SESSIONSECRET | sessionsecret | Cadena utilizada para firmar la cookie de ID de sesión por el middleware express-session. |
ME_CONFIG_BASICAUTH | false | Deprecido, use ME_CONFIG_BASICAUTH_ENABLED en su lugar. |
ME_CONFIG_BASICAUTH_ENABLED | false | Habilitar la autenticación básica. Enviar cadenas: "true" o "false" . |
ME_CONFIG_BASICAUTH_USERNAME | `` `` | Nombre de inicio de sesión web de Mongo-Express. Si no se define, admin es el nombre de usuario. |
ME_CONFIG_BASICAUTH_USERNAME_FILE | `` `` | Versión de archivo de ME_CONFIG_BASICAUTH_USERNAME |
ME_CONFIG_BASICAUTH_PASSWORD | `` `` | Contraseña de inicio de sesión web de Mongo-Express. Si no se define, pass es la contraseña. |
ME_CONFIG_BASICAUTH_PASSWORD_FILE | `` `` | Versión de archivo de ME_CONFIG_BASICAUTH_PASSWORD |
ME_CONFIG_OIDCAUTH_ENABLED | false | Habilitar la autenticación OpenIdConnect. Enviar cadenas: "true" o "false" . |
ME_CONFIG_OIDCAUTH_ISSUER | `` `` | OAUTH2 Emisor. URL de raíz a los metadatos de OpenIdConnect Eg. "<issuer>/.well-known/openid-configuration" |
ME_CONFIG_OIDCAUTH_ISSUER_FILE | `` `` | Versión de archivo de ME_CONFIG_OIDCAUTH_ISSUER |
ME_CONFIG_OIDCAUTH_CLIENTID | `` `` | OAUTH2 CLIENTID. El cliente debe ser privado y permitido realizar la subvención de flujo del código de autorización. |
ME_CONFIG_OIDCAUTH_CLIENTID_FILE | `` `` | Versión de archivo de ME_CONFIG_OIDCAUTH_CLIENTID |
ME_CONFIG_OIDCAUTH_CLIENTSECRET | `` `` | OAUTH2 Secreto del cliente. |
ME_CONFIG_OIDCAUTH_CLIENTSECRET_FILE | `` `` | Versión de archivo de ME_CONFIG_OIDCAUTH_CLIENTSECRET |
ME_CONFIG_OIDCAUTH_SECRET | `` `` | Un secreto aleatorio utilizado por la biblioteca para iniciar el flujo del código de autorización (requerido) |
ME_CONFIG_OIDCAUTH_SECRET_FILE | `` `` | Versión de archivo de ME_CONFIG_OIDCAUTH_SECRET_FILE |
ME_CONFIG_OIDCAUTH_BASEURL | `` `` | OAUTH2 Base URL. Se usa para construir la URL de redirección, por ejemplo. "<base-url>/callback" . Si no se especifica, se utilizará ME_CONFIG_SITE_BASEURL . |
ME_CONFIG_OIDCAUTH_BASEURL_FILE | `` `` | Versión de archivo de ME_CONFIG_OIDCAUTH_BASEURL |
ME_CONFIG_REQUEST_SIZE | 100kb | Se utiliza para configurar el tamaño máximo de la carga útil de la actualización de Mongo. Las operaciones CRUD por encima de este tamaño fallarán debido a las restricciones en el cuerpo-parser. |
ME_CONFIG_OPTIONS_READONLY | false | Si Readonly es verdadero, los componentes de la escritura no son visibles. |
ME_CONFIG_OPTIONS_FULLWIDTH_LAYOUT | false | Si se establece en True, se utiliza un diseño de página alternativo utilizando el ancho de la ventana completa. |
ME_CONFIG_OPTIONS_PERSIST_EDIT_MODE | false | Si se establece en True, permanezca en la misma página después de hacer clic en el botón Guardar |
ME_CONFIG_OPTIONS_NO_DELETE | false | Si Nodelete es verdadero, los componentes de eliminación no son visibles. |
ME_CONFIG_SITE_SSL_ENABLED | false | Habilitar SSL. |
ME_CONFIG_SITE_SSL_CRT_PATH | | Archivo de certificado SSL. |
ME_CONFIG_SITE_SSL_KEY_PATH | | Archivo de clave SSL. |
ME_CONFIG_SITE_GRIDFS_ENABLED | false | Habilitar GRIDFS para administrar archivos cargados. |
ME_CONFIG_DOCUMENTS_PER_PAGE | 10 | Cuántos documentos desea ver a la vez en la vista de la colección |
PORT | 8081 | Puerto en el que se ejecutará Mongo-Express. |
VCAP_APP_HOST | localhost | Dirija que Mongo-Express escuchará las conexiones entrantes. |
Ejemplo:
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
Este ejemplo vincula a un nombre de contenedor típico de docker-compose , cambia el tema del color del editor y deshabilita la autenticación básica.
Para usar:
El puerto predeterminado expuesto desde el contenedor es 8081, así que visite http://localhost:8081 o cualquier url/puerto que ingresó en su configuración (si se ejecuta independientemente) o cualquier config.site.baseUrl (si se montó como un middleware).
Requisito previo:
Uso:
Al usar Mongo Express Docker Extension, es fácil configurar Mongo Express en Docker Desktop con solo un clic.
Desplegar en IBM Cloud
Haciendo manualmente:
examples/ibm-cloud/manifest.yml para que se ajuste a su aplicación y entorno de servicio de IBM CloudHaciendo automáticamente:
Luego, tome la siguiente acción para personalizar a su entorno:
config.js basado en config.default.jsdbLabel de acuerdo con el servicio MongoDB creadobasicAuth , no para mantener los valores predeterminados Uso con el paquete mongo-express
Si instala mongo-express como un paquete , instale la dependencia express-openid-connect :
yarn add express-openid-connectConfigurar la aplicación OAuth2
La implementación actual admite la subvención de flujo de código de autorización de OAUTH2, para que funcione, necesita configurar un cliente en su proveedor de identidad y pasar los parámetros a la aplicación:
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 > Para registrar a su cliente, necesitará la URI de redirección de la aplicación, que se puede obtener mediante la agrega /callback a la URL base de la aplicación: por ejemplo. https://example.com/mongo-express/callback
key y value ) y prepara un objeto MongoDB find (), con proyección establecida en {} para que devuelva todas las columnas.find y projection directamente a MongoDB db.collection.find(query, projection) . El objeto find es donde ocurre su consulta, mientras que el objeto projection determina qué columnas se devuelven.Consulte la documentación de MongoDB DB.Collection.Find () para ver los ejemplos y el uso exacto.
¡Las solicitudes de extracción son siempre bienvenidas! ?
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`
Los documentos JSON se analizan a través de una máquina virtual JavaScript, por lo que la interfaz web se puede utilizar para ejecutar JavaScript malicioso en un servidor .
Mongo-Express solo debe usarse en privado para fines de desarrollo .
Los siguientes tipos de datos BSON son compatibles con el editor/visor de documentos Mongo-Express.
Tipos nativos de JavaScript
Cadenas, números, listas, booleanos, nulos, etc.
Todos los números en JavaScript son puntos flotantes de 64 bits.
ObjectId/ObjectId
ObjectId()
Crea un nuevo tipo de ID de objeto.
ObjectId(id)
Use ID de objeto con la cadena hexadecimal de 24 dígitos dada.
Isodato
ISODate()
Crea un nuevo objeto isodato con la hora actual.
También se puede usar new Date() (tenga en cuenta la new palabra clave allí).
ISODate(timestamp)
Utiliza el objeto Isodate con la marca de tiempo dada.
Uuid
UUID()
Crea un nuevo uuid v4.
También se puede usar new UUID() (tenga en cuenta la new palabra clave allí).
UUID(uuid)
Utiliza UUID V4 con la cadena hexadecimal dada de 24 dígitos.
Ejemplo: UUID("dee11d4e-63c6-4d90-983c-5c9f1e79e96c") o UUID("dee11d4e63c64d90983c5c9f1e79e96c")
Dbref/dbref
DBRef(collection, objectID)
DBRef(collection, objectID, database)
El ID del objeto es la cadena de ID, no el tipo ObjectId.
El valor de la base de datos es opcional.
Marca de tiempo
Timestamp()
Crea un nuevo objeto de marca de tiempo con un valor de 0.
Timestamp(time, ordinal)
Ejemplo: Timestamp(ISODate(), 0) .
Consulte http://www.mongodb.org/display/docs/timestamp+Data+Type para obtener más información sobre el tipo de datos de la marca de tiempo.
Código
Code(code)
El código puede ser una función nativa de JavaScript, o puede ser una cadena.
No se admite especificar un alcance/contexto.
Mínimo
MinKey()
Maxkey
MaxKey()
Símbolo
Symbol(string)
Aquí hay un ejemplo de un documento que se puede leer/editar en Mongo-Express (medios de comunicación para la legibilidad):
{
"_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")
}