sql >> Databasteknik >  >> RDS >> Oracle

Anslut oracle från nodejs

Jag vet att detta är ett gammalt inlägg... ville bara nämna ett säkert sätt för nodejs att kommunicera med oracle utan extra moduler.

Konfigurera Oracle så att det kan skapa och ta emot http-förfrågningar. Det finns några sätt att göra detta:

Det enklaste är att slå på epg-gatewayen:

Du kan också ställa in modplsq:

eller Apex-lyssnaren:

Gör sedan en standard http.get:

i node js
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);

});

Oavsett vilket tillvägagångssätt...säkra oracle så att det bara svarar på ip-adressen för nodejs-servern. Så om den körs på localhost:

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

Blockera även anrop till alla andra paket och procedurer. Det finns få sätt att göra detta beroende på vilken väg du tar.

Se till att du gör detta åtminstone:

  • skapa en vit lista över objekt som kan anropas från webben
  • kräver att alla webbadresser innehåller schemanamnet som:myuser.myprocedur
  • se till att den första delen av webbadressen (upp till sökvägen) endast innehåller a-z 0-9
  • en bra vit lista kommer att ta hand om de flesta av dessa objekt

Där har du det...du behöver inte oroa dig om en modul går sönder eller slutar fungera med nästa version.

OCH...du kan enkelt kommunicera från Oracle till Node:

  • apex_web_service.make_rest_request
  • utl_http


  1. PHP PDO-förberedda uttalanden och värdebindning ger fel med ogiltig parameternummer

  2. mysql:uppdatera med underfråga,

  3. SQL SKAPA TABELL för nybörjare

  4. Hur ställer man in teckenuppsättning för MySQL i RODBC?