質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

303閲覧

node-redのfunctionからproxy経由でInternetでアクセスしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/12/11 07:24

編集2018/12/21 22:23

環境変数に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の出力をえるにはどうすればよいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shou6

2018/12/11 07:34

コードは<code>で囲いましょう。見づらいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問