Oracle
 sql >> база данни >  >> RDS >> Oracle

Свържете оракул от nodejs

Знам, че това е стара публикация... просто исках да спомена сигурен начин nodejs да комуникират с Oracle без допълнителни модули.

Настройте oracle, така че да може да създава и получава http заявки. Има няколко начина да направите това:

Най-лесно е да включите epg gateway:

Също така можете да настроите modplsq:

или Apex слушателя:

След това във възел js направете стандартен 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);

});

Който и подход...защитете оракула, така че да отговаря само на ip адреса на nodejs сървъра. Така че, ако работи на локален хост:

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

Също така блокирайте повиквания към всеки друг пакет и процедура. Има няколко начина да направите това в зависимост от пътя, който поемате.

Уверете се, че правите това поне:

  • създайте бял списък с елементи, които могат да бъдат извикани от мрежата
  • изискване всички URL адреси да съдържат името на схемата като:myuser.myprocedure
  • уверете се, че първата част от URL адреса (до пътя на заявката) съдържа само a-z 0-9
  • един наистина добър бял списък ще се погрижи за повечето от тези елементи

Ето го...няма нужда да се притеснявате дали даден модул ще се повреди или ще спре да работи със следващото издание.

И... можете лесно да комуникирате от Oracle към Node, като използвате:

  • apex_web_service.make_rest_request
  • utl_http


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. R рамка с данни към Oracle SQL таблица:Не може да се разпредели памет

  2. Преброяване на броя на поява на символ в Oracle SQL

  3. Премахнете заглавката на колона в изходния текстов файл

  4. Не можем ли да използваме [specifier] с оператор like с Oracle?

  5. OCIError при проблем с „изискване“ на разрешения?