sql >> Base de Datos >  >> RDS >> Oracle

Conectar Oracle desde nodejs

Sé que esta es una publicación antigua... solo quería mencionar una forma segura de que nodejs se comunique con Oracle sin módulos adicionales.

Configure Oracle para que pueda crear y recibir solicitudes http. Hay algunas maneras de hacer esto:

Lo más fácil es activar la puerta de enlace ePG:

También puede configurar modplsq:

o el oyente de Apex:

Luego, en el nodo js, ​​haga un http.get estándar:

http.get("http://localhost/accessor/myschema.my_procedure?x=1&y=2", function(res) {
    console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
   console.log("Got error: " + e.message);

});

Cualquiera que sea el enfoque... oráculo seguro para que solo responda a la dirección IP del servidor nodejs. Entonces, si se ejecuta en localhost:

if owa_util.get_cgi_env('REMOTE_ADDR') = '127.0.0.1' then 
   --ok
else
   -- fail
end if;

También bloquee las llamadas a cualquier otro paquete y procedimiento. Hay pocas maneras de hacer esto dependiendo del camino que tomes.

Asegúrate de hacer esto como mínimo:

  • crear una lista blanca de elementos a los que se puede llamar desde la web
  • requerir que todas las URL contengan el nombre del esquema como:miusuario.miprocedimiento
  • asegúrese de que la primera parte de la URL (hasta la ruta de consulta) contenga solo a-z 0-9
  • realmente una buena lista blanca se encargará de la mayoría de estos elementos

Ahí lo tienes... no tienes que preocuparte si un módulo se estropea o deja de funcionar con la próxima versión.

Y... puede comunicarse fácilmente de Oracle a Node use:

  • apex_web_service.make_rest_request
  • utl_http