2016-03-21 22 views
0

Ich benutze nodejs 5.9.0 und express. In meinem Code erstelle ich den Server auf diese Weise:Node.js TLS "TypeError: Kann die Eigenschaft 'indexOf' von undefined nicht lesen"

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 funktioniert gut. Aber als ich versuchte, https://localhost:3000 zuzugreifen, wirft es unter Ausnahme:

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 

Habe ich NodeJS TLS und Express die richtige Art und Weise?

Antwort

3

Sie brauchen, ist nur eine Verbindung Ebene TCP im Grunde seit tlshttps, nicht tls, mit Express-Apps zu verwenden (gesichert durch TLS):

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

Dank! Interessant ... das war im Grunde der Code, den ich anfangs verwendete, aber der Browser warf mich Sicherheitsausnahmen. Nun ... Ich habe meine Nodejs in den letzten 30 Minuten von 5.5.0 auf 5.9.0 aktualisiert. Nicht sicher, ob das das Problem behoben hat. –

Verwandte Themen