2016-03-21 11 views
0

私はnodejs 5.9.0を使用して表現しています。私のコードでは、次のようにサーバーを作成します。Node.js TLS "TypeError:未定義の 'indexOf'プロパティを読み取れません"

var app = express(); 

var tls = require('tls'); 
var fs = require('fs'); 
var options = { 
    key: fs.readFileSync('key.pem'), 
    cert: fs.readFileSync('cert.pem') 
}; 
tls.createServer(options, app).listen(3000); 

var http = require('http'); 
http.createServer(app).listen(80); 

HTTPが正常に動作します。私はhttps://localhost:3000にアクセスしようとしたときしかし、それは例外の下にスロー:私は

C:\src\nodejs\videos\node_modules\express\lib\router\index.js:140 
    var search = 1 + req.url.indexOf('?'); 
         ^

TypeError: Cannot read property 'indexOf' of undefined 
    at Function.handle (C:\src\nodejs\videos\node_modules\express\lib\router\index.js:140:27) 
    at EventEmitter.handle (C:\src\nodejs\videos\node_modules\express\lib\application.js:173:10) 
    at Server.app (C:\src\nodejs\videos\node_modules\express\lib\express.js:38:9) 
    at emitOne (events.js:90:13) 
    at Server.emit (events.js:182:7) 
    at TLSSocket.<anonymous> (_tls_wrap.js:817:14) 
    at emitNone (events.js:80:13) 
    at TLSSocket.emit (events.js:179:7) 
    at TLSSocket._init.ssl.onclienthello.ssl.oncertcb.TLSSocket._finishInit (_tls_wrap.js:593:8) 
    at TLSSocket.onhandshakedone (_tls_wrap.js:65:8) 
Program node bin/www exited with code 1 

TLS nodejs使用し、正しい方法を表現しましたか?あなたはtls以来Expressのアプリで、https、ないtlsを使用する必要が

答えて

3

は、基本的には、(TLSで保護)単なるTCPコネクションである:

var app = express(); 

var fs = require('fs'); 
var http = require('http'); 
var https = require('https'); 

var options = { 
    key: fs.readFileSync('key.pem'), 
    cert: fs.readFileSync('cert.pem') 
}; 

https.createServer(options, app).listen(3000); 
http.createServer(app).listen(80); 
+0

ありがとう!興味深い...基本的に私が最初に使ったコードでしたが、ブラウザは私にセキュリティの例外を投げかけました。まあ...最後の30分でnodejを5.5.0から5.9.0にアップグレードしました。その問題が修正されたかどうかは不明です。 –