2016-04-14 12 views
1

私はNodeJs "http-server"、 "express"、 "web socket"を使ってWebサイトを作ろうとしています。基本的に、「http-server」はポート「8080」をlistenし、「index.html」ページにはログインを行うための簡単なフォームがあります。http server、websocket、expressでのアーキテクチャ

私はちょっと立ち往生しています。実際には、私はこの記事(https://auth0.com/blog/2014/01/15/auth-with-socket-io)を読んでおり、認証プロセスを再現しようとしています。だから私は "/ログイン"ルートを処理するための "高速"アプリを作成しようとしているが、私はポートの問題がある。 "http-server"で使われている "8080"ポートを聞くことができず、別のポートを聞くことができません。そうすれば "/ login"ルートへのAJAXコールがブロックされるためですCORSシステムによって。

私の目標は非常に簡単です:html/cssとjavascriptファイル(通常のWebサーバー)を提供するWebサーバーを用意したいと思いますが、「Express」を使用した「NodeJs」モジュール残りのコミュニケーションのためにログインとWebソケットを処理します。私は同じポート上で "ws" & "express"を使用することが可能であることを知っていましたが、私はWebサイト経由でAJAXログインを可能にするために何ができるか分かりません。

答えて

2

ExpressアプリケーションでAccess-Control-Allow-Originヘッダーを設定すると、エクスプレスアプリを他のポートでホストすることができ、CORSの問題には対処できません。

app.use(function (req, res, next) { 
res.header('Access-Control-Allow-Origin', 'your origin here'); 
next(); 
}); 

このコードは、ルート処理の前に設定する必要があります。そうすることで、あなたのエクスプレスアプリを通過するリクエストごとにヘッダーを設定します。

+0

魅力のように動作します、ありがとうございます。そして、それが有効なアーキテクチャだと思いますか、あまりにも面倒なことをしていますか? – ssougnez

+0

これは有効なアーキテクチャです。私は自分のプロジェクトでも同様のものを使っています。あなたのプロジェクトに幸運。 :) – Snekw

+0

すごく感謝します。最後の1つの質問:expressがWebソケットのルートを処理しているという事実をどうやって扱いますか?昨日寝る前に "express-ws"を読んだが、それは解決策だと思われるが、それはもっと似ているかもしれない。 – ssougnez

関連する問題