sql >> Database >  >> RDS >> Oracle

Verbind orakel vanuit nodejs

Ik weet dat dit een oud bericht is... Ik wilde alleen een zekere manier noemen waarop nodejs met Oracle kunnen communiceren zonder extra modules.

Stel orakel in zodat het http-verzoeken kan maken en ontvangen. Er zijn een paar manieren om dit te doen:

Het gemakkelijkst is om de epg-gateway aan te zetten:

U kunt ook modplsq instellen:

of de Apex-luisteraar:

Doe dan in node js een standaard http.get:

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);

});

Welke benadering dan ook... beveilig orakel zodat het alleen reageert op het ip-adres van de nodejs-server. Dus als het draait op localhost:

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

Blokkeer ook oproepen naar elk ander pakket en elke andere procedure. Er zijn enkele manieren om dit te doen, afhankelijk van het pad dat u neemt.

Zorg ervoor dat je dit minimaal doet:

  • maak een witte lijst met items die vanaf internet kunnen worden opgeroepen
  • vereisen dat alle url's de schemanaam bevatten, zoals:mijngebruiker.mijnprocedure
  • zorg ervoor dat het eerste deel van de url (tot aan het zoekpad) alleen a-z 0-9 bevat
  • echt een goede witte lijst zal voor de meeste van deze items zorgen

Daar heb je het... je hoeft je geen zorgen te maken als een module kapot gaat of stopt met werken bij de volgende release.

EN... je kunt gemakkelijk communiceren van Oracle naar Node gebruik:

  • apex_web_service.make_rest_request
  • utl_http


  1. C# DataTable doorgeven als parameter aan opgeslagen procedure in MS SQL Server 2008

  2. Parallel Go-tests uitgevoerd tegen een PostgreSQL-database die draait op Docker

  3. Genereer tabelrelatiediagram van bestaand schema (SQL Server)

  4. SQLITE kan de alleen-lezen database niet upgraden van versie 1 naar 2