¿Es fácil / posible hacer un include('./path/to/file')
tipo simple de comando en node.js?
Todo lo que quiero hacer es tener acceso a variables locales y ejecutar un script. ¿Cómo suelen organizar las personas los proyectos de node.js que son más grandes que un simple hola mundo? (Un sitio web dinámico totalmente funcional)
Por ejemplo, me gustaría tener directorios como:
/models
/views
... etc.
javascript
node.js
Travis
fuente
fuente
downloadedModules
en el mismo directorio que el script.Respuestas:
Solo haz un
require('./yourfile.js');
Declare todas las variables que desea acceso externo como variables globales. Entonces en lugar de
var a = "hello"
seráGLOBAL.a="hello"
o soloa = "hello"
Esto obviamente es malo. No quieres contaminar el alcance global. En cambio, el método de sugerencia es para
export
sus funciones / variables.Si quieres el patrón MVC, mira a Geddy.
fuente
require
ve en tus módulos npm si no prefijas tu camino con algo como./
Debe comprender CommonJS, que es un patrón para definir módulos. No debe abusar del alcance GLOBAL que siempre es algo malo, sino que puede usar el token 'exportaciones', como este:
Y el código del cliente que usará nuestro módulo:
Este código se extrajo de la API de documentación de node.js:
http://nodejs.org/docs/v0.3.2/api/modules.html
Además, si desea usar algo como Rails o Sinatra, le recomiendo Express (no pude publicar la URL, ¡lástima el desbordamiento de pila!)
fuente
Si está escribiendo código para Node, usar módulos de Node como lo describe Ivan es sin duda el camino a seguir.
Sin embargo, si necesita cargar JavaScript que ya se ha escrito y no conoce el nodo, el
vm
módulo es el camino a seguir (y definitivamente preferibleeval
).Por ejemplo, aquí está mi
execfile
módulo, que evalúa el scriptpath
encontext
o en el contexto global:También tenga en cuenta: los módulos cargados con
require(…)
no tienen acceso al contexto global.fuente
require.cache
, por lo que un solo archivo puede cargarse varias veces.require
como normal:function loadService(name) { return require('./services/' + name); }
a continuación, se enumeran los servicios sin embargo tiene sentido para la aplicación.Si planea cargar las funciones u objetos de un archivo javascript externo, cargue en este contexto utilizando el siguiente código: tenga en cuenta el método runInThisContext:
fuente
Ampliando la respuesta de @Shripad y @Ivan , recomendaría que utilice la funcionalidad de exportación del módulo estándar de Node.js.
En su archivo de constantes ( p
constants.js
. Ej. ), Escribiría constantes como este:Luego, en el archivo en el que desea usar esas constantes, escriba el siguiente código:
Si nunca
const { ... }
antes has visto la sintaxis: esa es una tarea desestructuradora .fuente
Perdón por la resurrección. Puede usar el módulo child_process para ejecutar archivos js externos en node.js
fuente