これは古い投稿だと思います...nodejsが追加のモジュールなしでOracleと通信するための確実な方法について言及したかっただけです。
httpリクエストを作成および受信できるようにoracleを設定します。これを行うにはいくつかの方法があります:
最も簡単なのは、epgゲートウェイをオンにすることです。
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);
});
どちらのアプローチでも...nodejsサーバーのIPアドレスにのみ応答するようにOracleを保護します。したがって、ローカルホストで実行している場合:
if owa_util.get_cgi_env('REMOTE_ADDR') = '127.0.0.1' then
--ok
else
-- fail
end if;
また、他のすべてのパッケージとプロシージャへの呼び出しをブロックします。あなたがたどる道に応じて、これを行ういくつかの方法があります。
少なくともこれを行うようにしてください:
- ウェブから呼び出すことができるアイテムのホワイトリストを作成する
- すべてのURLに次のようなスキーマ名が含まれている必要があります:myuser.myprocedure
- URLの最初の部分(クエリパスまで)にa-z0-9のみが含まれていることを確認してください
- 本当に良いホワイトリストがこれらのアイテムのほとんどを処理します
モジュールが壊れたり、次のリリースで動作を停止したりするかどうかを心配する必要はありません。
そして...Oracleからノードの使用に簡単に通信できます:
- apex_web_service.make_rest_request
- utl_http