gpt4 book ai didi

Node.js TLS "TypeError: Cannot read property ' indexOf' 未定义”

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:18 25 4
gpt4 key购买 nike

我使用 nodejs 5.9.0 和 express。在我的代码中,我以这种方式创建服务器:

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

我是否使用了 nodejs TLS 并表达了正确的方式?

最佳答案

对于 Express 应用程序,您需要使用 https,而不是 tls,因为 tls 基本上只是一个普通的 TCP 连接(由 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);

关于Node.js TLS "TypeError: Cannot read property ' indexOf' 未定义”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com