¿Cómo puedo cargar archivos js externos que no se ajustan al formato node.js? Estoy tratando de importar la biblioteca de serialización json. ¿Cómo puedo hacer esto?¿Cómo se importan los archivos non-node.js?
Respuesta
2 respuestas ...
1) el objeto JSON es integrado en Node.js, por lo que sólo puede llamar JSON.parse() y JSON.stringify(), no hay necesidad de importar código externo para este caso particular.
2) para importar código externo, Node.js sigue la especificación del módulo CommonJS y se puede utilizar require()
por lo que si usted tiene un archivo llamado external.js (en el mismo directorio que el resto de su código):
this.hi = function(x){ console.log("hi " + x); }
y desde el nodo que hace:
var foo = require("./external");
foo.hi("there");
verá la salida hi there
+1 para this.hi = function (x) {console.log ("hi" + x); } – iwill
Escribir envolturas o cambiar el código.
¿Qué debería hacer automágicamente que funcione? ¿Cómo se supone que Node sabe qué funciones deberían exportarse o no?
Todo lo que puede hacer es ajustar el código para que coincida con el estándar Common JS, pero antes de hacerlo, consulte API Docs y Modules Pages en la Wiki Node.js para ver si alguien ya hizo el trabajo por usted:)
Si se escribe código sí mismo que debería funcionar en un navegador y Node.js se puede utilizar un envoltorio como la siguiente:
(function(node) {
// Your Awesome code here
if (node) {
exports.foo = ...
} else {
window.foo = ...
}
})((function(){return ('' + this).slice(8, -1) !== 'DOMWindow';})());
Si confía en el código (quiero decir, realmente confianza el código) entonces usted puede eval
él:
eval(require('fs').readFileSync('somefile.js', 'utf8'));
No recomendaría hacer esto con código remoto (porque podría cambiar sin su conocimiento) pero si tiene una copia local de algo, entonces debería estar bien.
Esta es una respuesta horrible. Y me encanta. –
Un simple requerir como en la respuesta aceptada funciona mejor que leer un JSON. También es beneficioso si el JSON es un archivo de configuración y desea insertarlo en su archivo .js usando un paquete web, mochila, etc. – Ozil
- 1. ¿Pitón optimiza los módulos cuando se importan varias veces?
- 2. ¿Configurando relaciones mientras se importan datos centrales?
- 3. ¿Por qué a Git le importan los espacios en blanco en mis archivos?
- 4. ¿Por qué nos importan los tipos de datos?
- 5. ¿Qué paquetes se importan automáticamente 1) Java y 2) Groovy?
- 6. PHP: espacios en blanco que sí importan
- 7. ¿Cómo se "refactorizan" los archivos ant build.xml?
- 8. HDFS: ¿Cómo se enumeran los archivos recursivamente?
- 9. Cómo se firman los archivos .apk
- 10. ¿Cómo se imprimen los archivos XPS?
- 11. ¿Cómo se analizan los archivos XML?
- 12. ¿Cómo se editan los archivos Maven pom?
- 13. Estructura de archivos de Cassandra: ¿cómo se usan los archivos?
- 14. ¿Cómo se importan las ramas de git en mercurial con la conversión de hg?
- 15. ¿Por qué los módulos de Python a veces no importan sus submódulos?
- 16. ¿Cómo se cruzan los archivos ejecutables ELF para Android?
- 17. ¿Cómo se editan los archivos a través de SSH?
- 18. ¿Cómo enumero solo los archivos que se comprometerán?
- 19. ¿Cómo se compilaron los archivos python en una carpeta separada?
- 20. ¿Cómo se muestran los archivos tiff en Silverlight?
- 21. ¿Cómo se manejan los nombres de archivos con espacios?
- 22. ¿Cómo se han compartido los archivos de registro en Windows?
- 23. ¿Cómo se cargan y ejecutan los archivos JavaScript?
- 24. ¿Cómo se sirven los archivos estáticos a través de Rack?
- 25. ¿Cómo se eliminan los archivos grandes del historial en mercurial?
- 26. ¿Cómo se abren los archivos .mat en Octave?
- 27. ¿Cómo se enumeran los archivos en un directorio estático?
- 28. ¿Cómo se visualizan los archivos de registro en tiempo real?
- 29. ¿Cómo se combinan los archivos PDF en rubí?
- 30. ¿Cómo se organiza el código C# en los archivos?
hay soporte integrado para json (p. JSON.stringify (obj)), ¿está buscando algo más allá del conjunto de características ya admitidas? – davin
@david Solo por ahora y referencia futura. No quiero tener que encontrar las versiones de node.js de todo. – Will03uk
Definitivamente no importa una segunda biblioteca JSON (supongo que estás mirando json2.js?). JSON.parse() y JSON.stringify() están integrados en el nodo desde el inicio. –