Docs Menu
Docs Home
/ /

Diferencias entre require() y load()

El require() Los métodos load() incluyen archivos y módulos en sus scripts para mayor funcionalidad. Sin embargo, los métodos require() y load() difieren en su comportamiento y disponibilidad.

Puede utilizar los siguientes tipos de scripts con mongosh:

  • mongosh scripts, que pueden ser cualquiera de los siguientes:

    • Código introducido directamente en el REPL.

    • El archivomongoshrc.js.

    • Código cargado con el método load().

  • Scripts de Node.js, que son cualquier script cargado con require(), incluidos los paquetes npm. Estos scripts siempre son archivos.

Los métodos require() y load() difieren en disponibilidad según el tipo de script que esté utilizando.

  • En los scripts mongosh, tanto require() como load() están disponibles.

  • En los scripts de Node.js, solo require() está disponible.

El tipo de script determina cómo se especifican las rutas de archivo con require() o load().

  • En mongosh scripts:

    • require() utiliza el estándar Algoritmo de resolución de módulos de Node.js, comenzando desde el directorio de trabajo actual del shell.

    • load() toma ya sea:

      • Una ruta absoluta, o

      • Una ruta relativa. Al usar una ruta relativa, esta siempre se interpreta como relativa al directorio de trabajo actual del shell.

  • En los scripts de Node.js, require() utiliza el algoritmo de resolución de módulos estándar de Node.js, comenzando desde el archivo donde require() se llamó a.

Puede cargar código externo en un archivo de script mongosh, como un paquete npm o un script mongosh separado.

  • Para cargar un script mongosh desde otro script mongosh, utilice la variable de entorno __dirname. La variable de entorno __dirname devuelve la ruta absoluta del directorio que contiene el archivo que se está ejecutando.

    Ejemplo

    Para cargar un script mongosh llamado test-suite.js desde otro script mongosh, agregar la siguiente línea a tu script:

    load(__dirname + '/test-suite.js')

    El uso de la variable _dirname para especificar una ruta absoluta garantiza que el script independiente que está cargando no se vea afectado por factores externos como dónde se inició mongosh.

  • Para cargar un script Node.js desde un script mongosh, utilice el método require().

    Ejemplo

    Para cargar el módulo date-fns desde un mongosh script llamado,test-suite2.js agregue las siguientes líneas a su script:

    const localRequire = require('date-fns').createRequire(__filename);
    const fileExports = localRequire('./test-suite2.js'); }

Hay dos estándares de empaquetado para los módulos Node.js.

Estándar de embalaje
Funciona con require()

CommonJS (CJS)

ECMAScript Module (ES Module)

No

No puedes require() un módulo ES en mongosh. Si deseas utilizar la funcionalidad de un módulo ES, verifica si existe una versión en CommonJS que puedas usar en su lugar. Para obtener más información, consulta:

  • mongosh los scripts pueden utilizar la mongosh API.

  • Los scripts de Node.js no tienen acceso a la API mongosh.

Por ejemplo, la variable global db (usada para mostrar la base de datos actual) está disponible en los scripts mongosh. No está disponible en los scripts de Node.js.

Importante

mongosh Los scripts y los scripts de Node.js se ejecutan en diferentes contextos. Pueden mostrar comportamientos distintos al ejecutar el mismo comando en cada tipo de script, como devolver distintos tipos de datos. Por lo tanto, podrías observar resultados inesperados si ejecutas mongosh código dentro de un script de Node.js.

Por lo general, no debes mantener el código específico de Mongosh dentro de los scripts de Node.js.

Volver

Incluir archivos y módulos

En esta página