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