tag ejemplo javascript mysql firefox

ejemplo - ¿Hay enlaces de JavaScript para MySQL?



getelementsbytagname javascript ejemplo (9)

Quiero acceder a una base de datos MySQL directamente desde el código JavaScript en una página HTML en Firefox.

¿Existe tal biblioteca?

Para ser muy claro, CGI + Ajax no funcionará

Algunos antecedentes: quiero crear algo así como una interfaz gráfica de usuario para una base de datos MySQL (eso no es lo que es, pero está lo suficientemente cerca). Estoy pensando en hacer esto como una página HTML local usando JavaScript, pero para que funcione necesito enlaces MySQL para JavaScript bajo Firefox. Ya tengo un prototipo funcional en menos de 100 LOC, pero requiere un servidor web, y por razones que van más allá de esta cuestión, eso no funcionará.

NOTA: tanto la base de datos como el código JavaScript se ejecutarán localmente y no están destinados a ser una página pública. De hecho, el archivo HTML se cargará como archivo: ////. La única razón por la que estoy usando JavaScript es porque es el único sistema disponible para hacer cosas de GUI donde lo necesito.

Estoy dispuesto a instalar complementos, DLL, cosas dependientes de Windows o qué no para que esto funcione.

Editar: Parece que la respuesta es: "Se puede hacer, pero va a ser doloroso". Como una de mis opciones es simplemente arrojar todos los datos como archivos (feo, y no demasiado flexible, pero funcionaría), creo que no voy a seguir con esto.


Interesante pregunta. Pero seguro que levanta muchas barreras, seleccionando un idioma / entorno con muchas limitaciones voluntarias para limitar el acceso al sistema subyacente ...

Me gusta la sugerencia de Robert, Xavante es realmente liviano.

De lo contrario, creo que una solución viable podría ser utilizar un applet de Java con acceso JDBC. Creo que tendrías que firmar el applet, lo cual no debería ser un problema.

Busqué Java applet jdbc en Google y vi muchos títulos prometedores, IBM proporciona el código fuente de dicho applet (para acceso de DB2 pero debe ser fácilmente adaptable).

[EDIT] Hay otra forma de envolver mysqllib.dll con una DLL XPCOM, como se explica en el código nativo en javascript . No tengo idea de cómo hacerlo realmente, pero tal vez pueda comenzar.


Javascript puede acceder a MySQL ... pero generalmente solo en el servidor. Lo hice con Rhino, un intérprete de JavaScript basado en Java. Acaba de incluirse el controlador MySQL, y está disponible. Me imagino que probablemente también puedas hacer esto con un applet.

usando Rhino, sería algo como esto:

var DATABASE = { database: ''blog_development'', host: ''localhost'', username: ''dbuser'', password: ''dbpass'' }; function ArticleModel(properties) { for (var p in properties) { this[p] = properties[p]; } } ArticleModel.findAll = function() { var results = []; var jsConnectionObj = new Packages.MysqlConnection(); c = jsConnectionObj.open(DATABASE.host, DATABASE.database, DATABASE.username, DATABASE.password); if (c) { var s = c.createStatement(); s.executeQuery("SELECT * FROM articles;"); var rs = s.getResultSet(); while (rs.next()) { results.push(new ArticleModel({ id: rs.getInt("id"), title: rs.getString("title"), body: rs.getString("body") })); } rs.close(); c.close(); return results; } throw new Error(''could not connect to database''); };


Lo que necesita es un servicio HTTP que expone los datos que desea buscar con JavaScript.

Un pequeño script del lado del servidor orientado a AJAX (PHP, Perl, Ruby, lo que sea) que toma unos pocos parámetros y hace la consulta MySQL, enviando los datos al cliente de una manera amigable HTTP y JavaScript (por ejemplo, como image / jpeg o JSON).

No podrá configurar nada útil (una solución que funcione entre navegadores) que haga que MySQL esté disponible para JavaScript. JavaScript puede hacer HTTP, y eso es todo. Adaptarse en el lado del servidor.


Sin duda, si javascript puede hacer una llamada a un servidor, puede hacer una llamada a la dirección IP local (192.168.xx) y puede manejarse usando un programa que escucha en un puerto específico. Todo lo que el programa debería hacer entonces es interactuar con la base de datos, encontrar la información y pasarla al javascript.


Desafortunadamente necesitas un servidor. O si sabe cómo hacerlo y está listo para ser bloqueado por la plataforma o el navegador, podría escribir un complemento para su navegador de elección (hasta donde sé, no hay una DLL para Internet Explorer, por lo que tendrá que escribir uno )

Es posible que desee buscar en un pequeño servidor que no requiere configuración. Modifiqué el servidor Xavante de Lua, por una razón muy similar a la tuya, por lo que funciona sin dependencias externas, así puedo instalar / desinstalar la aplicación con un solo copiar / pegar.


El código JavaScript vive dentro del navegador. Puede realizar solicitudes HTTP al exterior, pero realmente no mucho más. Entonces, por diseño, no podrá enlazar a un programa que se ejecute localmente. Si MySQL realmente expone un servicio HTTP, podría ser posible, pero ese no es el caso.

Es posible que pueda encontrar un complemento para Firefox que exponga una API de MySQL a JavaScript, pero no conozco ningún plugin.

Si no necesita específicamente MySQL, sino solo una base de datos accesible desde código JavaScript, eche un vistazo a Google Gears . Es un complemento de Firefox / Internet Explorer que expone una base de datos SQLite y algunas otras cosas.

Si proporciona más información sobre lo que está tratando de construir, es posible que podamos darle un mejor consejo ...


No puedo darle una respuesta completa, pero aquí está la idea general de cómo puede hacerlo con solo MySQL + Internet Explorer + JavaScript (no probado):

En JavaScript puede llamar a una aplicación de Windows utilizando

var myshell = new ActiveXObject( "WScript.shell" ); myshell.run( program names );

Entonces, la idea es llamar a mysql.exe con las sentencias SQL almacenadas en un archivo SQL, luego capturar y analizar el resultado:

mysql.exe -h localhost -u root dbo < script.sql > output.txt

Esta idea no viene sin desafíos:

  • necesita modificar el archivo SQL antes de llamar a mysql.exe
  • necesita abrir y analizar el archivo de salida

Como mencioné anteriormente, no he probado nada, por lo que toda esta idea puede que ni siquiera funcione ...



Sé que este es un hilo viejo, pero creo que sigue siendo relevante.

He usado backbone.js como lib de cliente en el navegador. Esto simplifica (casi trivializa) el acceso a datos desde el navegador.

Depende de los servicios RESTful en el servidor, y estos pueden ser facilitados fácilmente. A modo de ejemplo, podría usar node.js, phpwebsockets o socket.io

HTH