9

node.js で Express (3.0) フレームワークを使用してアプリケーションをルーティングしています。

私のアプリケーションのほとんどはhttpプロトコルを使用していますが、私が提供したい特定のルートが 1 つhttpsだけあります。これは、ユーザーの登録と認証を担当する API の一部です。

例えば:

app.get('/connect', function(req, res){
 // Must be on HTTPS, if not redirect to HTTPS
});

app.post('/connect', function(req, res){
  // Must be on HTTPS
});

app.get('/', function(req, res){
 // Must be on HTTP
});

app.get('/build', function(req, res){
 // Must be on HTTP
});

同じアプリケーション内で両方を使いやすくするにはどうすればよいですか? これの例を実際に見つけるのに苦労しています。

4

3 に答える 3

1

このアプローチを試してください。2 つの高速リクエスト ハンドラ (app_http と app_https) を作成します。

http サーバー (http.createServer(app_http)) を作成するときに、要求ハンドラーとして app_http を渡します。

https サーバー (https.createServer(options,app_https)) を作成するときに、app_https を要求ハンドラーとして渡します。

var express = require('express'),
    http = require('http'),
    https = require('https');

var app_http = express(); // this one to handle http request

var app_https = express(); // this to handle httpS requests.


app_https.get('/connect', function(req, res){
 // Must be on HTTPS, if not redirect to HTTPS
});

app_https.post('/connect', function(req, res){
  // Must be on HTTPS
});

app_http.get('/', function(req, res){
 // Must be on HTTP
});

app_http.get('/build', function(req, res){
 // Must be on HTTP
});

    //call here http.createServer &  https.createServer with needed details.
于 2013-08-15T14:39:42.430 に答える