環境変数にproxyを設定してもアクセスできない(別スレッドで質問しています)ので
functionにコードを書いて試してみようとしています。
【環境】
CentOS7(Linux 3.10.0-826.11.6.el7.x86_64 x64 LE)
Node-RED version: v0.18.7
Node.js version:v6.14.3
telnet myproxy.local.co.jp 8080して
GET http://www.google.com/HTTP/1.1でHTMファイルが
取得できることは確認してあります
【事前作業】
npmにproxyを設定して
~/.node-red/にてnpm initを実施後、npm installを実施しました
~/.node-red/node_modulesが作成され、requestディレクトリが作成され
request.jsが作成されていることを確認しました
【環境確認】
~/.node-redでproxy.jpとファイル名をつけて以下コードを
記入して動くことを確認しました
コード var http = require("http"); var options = { host: "myproxy.local.co.jp", port: 8080, path: "http://www.google.com", headers: { Host: "www.google.com" } }; http.get(options, function(res) { console.log(res); });
setting.jsに以下を追記述後
functionGlobalContxt:{ http:require(`http'), },
systemctl restart node-red.serviceをタイプした後
node-redのフローエディターがブラウザで表示できることを確認しました
【コーディング】
手動でメッセージをフローに注入するtimestampノードにファンクションノードを
接続しproxy-useと名付け以下を記述しました
コード var Http = context.grobal.http; var options = { host: "myproxy.local.co.jp", port: 8080, path: "http://www.google.com", headers: { Host: "www.google.com" } }; http.get(options, function(res) { console.log(res); });
【問題】
上記ファンクションノードに接続しデプロイしたところエラーにはなりませんでした
しかし、timstanpからメッセージ注入してもデバッグタブになにも出力されません
同様に
以下内容を、context.grobal.requestをrequireにするだけでporxy.jsで
HTML出力を取得できることを確認しました
var request = context.grobal.request; request({'url': 'https://www.google.com/','proxy''http://myproxy.local.co.jp:8080/', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body); } });
setting.jsに以下を追記述後
コード functionGlobalContxt:{ reguest:require(`request'), },
systemctl restart node-red.serviceをタイプした後
node-redのフローエディターがブラウザで表示できることを確認しました
フローエディタでfunnctionに上記コードをデプロイしても、動作時デバックタブになにも出ません
proxy.jsのようにHTMLの出力をえるにはどうすればよいのでしょうか?
あなたの回答
tips
プレビュー