Antes de crear Node.js, ¿cómo se comunicaba JavaScript con una base de datos?

Hice una presentación que expuso la historia de JavaScript y la relación de las bases de datos. Presenta:

  • Datos de NoSQL vs JavaScript
  • SQL y JavaScript (Netscape desde 1996, Microsoft, Rhino, …)
  • API de JavaScript NoSQL
  • API de bases de datos HTML5 (almacenamiento web, WebSQL, IndexedDB)
  • API de bases de datos HTTP

Una versión más reciente de las diapositivas está disponible allí. Ofrece más información sobre las soluciones HTTP / REST.

  • NoSQL y JavaScript: una historia de amor (también mencione las API de bases de datos SQL)

Entonces, en resumen …

JavaScript estuvo disponible en el servidor Netscape desde 1996 y en Microsoft IIS desde 1997. El motor Mozilla Rhino Js también apareció unos años después con acceso a las API de bases de datos Java

Así que hubo API que permitieron consultar bases de datos desde hace mucho tiempo. También pudo consultarlos directamente desde el navegador utilizando la tecnología Microsoft Active X.

Adobe Flex que usó ActionScript a (candidato para convertirse en ECMAScript 4) también propuso la base de datos API.

También había otras soluciones de JavaScript del lado del servidor que node.js que todavía están disponibles, como:

  • Wakanda (con las API de bases de datos JS + REST del lado del servidor)
  • APE push engine (conectado a MySQL)
  • Persevere JavaScriptDB
  • Ringo.js

Su pregunta es: antes del Nodo, ¿cómo se ejecuta JavaScript en el servidor?

La respuesta es, a través del servidor LiveWire de Netscape, o a través de páginas Active Server (ASP) de Microsoft; u otros productos de servidor web de terceros que admitan JavaScript.

En el lado de Microsoft, cayó en desgracia en 2002, cuando Microsoft reemplazó ASP por ASP.NET, lo que favoreció a C #. Aunque ASP (y, por lo tanto, en muchos casos, JavaScript del lado del servidor) vivió con una longevidad inesperada.

Por el lado de Unix, Rhino fue el motor de ejecución de Javascript del lado del servidor que surgió de los esfuerzos de Netscape y duró más que Netscape. Fue utilizado por Flickr, Joost y otros.


Para responder técnicamente a su pregunta, de la misma manera que a menudo lo hace el Javascript moderno en Node: llamando a las API de bibliotecas empaquetadas binarias importadas.

Aunque, JavaScript se ha vuelto tan rápido en los años transcurridos desde la primera generación de JavaScript del lado del servidor, algunas de las bibliotecas de bases de datos de Nodo están escritas como JavaScript puro. Supongo que todavía implementan algunas API de nodo y / o utilizan la falta de restricciones de sandbox para realizar esa tarea, que no estaría disponible en el navegador, a menos que la base de datos sea accesible a través de HTTP o WebSockets .

Definitivamente no. Node.js fue el primero en ganar el mercado.

Antes había muchos proyectos más pequeños basados, por ejemplo, en el motor v8 utilizado en node.js también (v8cgi) o en el motor Rhino escrito en Java (AppJet). Este último fue donde me invitaron con JavaScript del lado del servidor, en 2009. Era una plataforma muy interesante, que incluía una base de datos perfecta (lo que escribiste en database.foo.bar persistió entre solicitudes), las solicitudes que fallaron / entraron en conflicto se repitieron. Algunas veces antes de devolver la respuesta de falla (como en GemStone), tenía IDE en línea que construyó una pequeña comunidad a su alrededor. Los chicos que lo crearon en realidad solo lo usaron como plataforma para construir su negocio: EtherPad, el documento editado simultáneamente, luego comprado por Google, renombró Google Wave y dejó morir (los clones de EtherPad como piratepad todavía deberían estar en línea).

Desde el punto de vista del navegador, hay dos formas de acceder a la base de datos desde javascript

  1. Si desea conectarse directamente a la base de datos desde el JavaScript escrito en HTML, utilizaremos las páginas de JavaServer Pages. En JavaServer Pages obtendrá JavaScriptTagLibrary en el que podemos usar la etiqueta SQL para escribir las consultas directamente en el JavaScript para acceder a la base de datos.
  2. Patrón MVC: la solicitud del HTML se enviará al controlador (escrito en java, etc.) y desde allí escribiremos el código para acceder a la base de datos.

De las dos opciones anteriores, la mayoría de la aplicación utilizará la opción 2.

Antes de NodeJS, tenían un montón de monstruosos lenguajes de back-end, bibliotecas y marcos.

  • Java
  • Primavera e hibernar
  • Groovy / Grails
  • DO#
    • .RED
  • Rubí
    • Rieles
  • Pitón
    • Django

    Hay Javascript del cliente y Javascript del servidor.

    El nodo es el servidor Javascript y permite que su cliente Javascript se comunique con la base de datos. Antes de crear Node, simplemente escribe el servidor en un idioma diferente como php o java y le envía solicitudes desde el Javascript de su cliente para obtener / enviar los datos que necesita.

    Técnicamente, también podría acceder a la base de datos desde el cliente Javascript, pero nadie lo hizo porque abre el sitio web a tantas vulnerabilidades.

    Antes de node.js, JavaScript nunca se comunicaba con la base de datos (ni siquiera con el sistema de archivos). JavaScript estaba destinado a (y solo se ejecutó) en la navegación del cliente sin tener acceso al sistema de archivos.

    La única opción entonces era tener un lenguaje de fondo apropiado (php, asp, jsp, etc.), recuperar datos de la base de datos y enviarlos a JavaScript y viceversa.

    Esta es una especie de pregunta capciosa porque JavaScript no se comunicó directamente con una base de datos antes de node.js. Como (casi) solo se ejecutó en un navegador, tenía que enviar llamadas a una API del lado del servidor que haría las comunicaciones de db y devolvería la respuesta.