简体   繁体   English

Express-Nodejs-HTTPS服务器

[英]Express - Nodejs - HTTPS Server

i'm using https server with express in my app, the problem is that express never listens on that port, it works with http but not with https 我在我的应用程序中使用带有Express的https服务器,问题是Express从未在该端口上侦听,它可以与http一起使用,但不能与https一起使用

app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

app.use(function (error, req, res, next) {
    if (error instanceof SyntaxError) {
        res.status(400).json({
            status: 'failed',
            message: "Enter a valid JSON object."
        });
    } else {
        res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
        res.header('Expires', '-1');
        res.header('Pragma', 'no-cache');
        next();
    }
});
app.use(cors());
app.use(morgan('dev'));
require('./config/routes.js')(app);
server = https.createServer({
        key: fs.readFileSync(process.env.SSL_LOCATION+"ssl.key"),
        cert: fs.readFileSync(process.env.SSL_LOCATION+"ssl.cert")
    },app).listen(parseInt(process.env.SOCKET_PORT, 10) || 4000, '0.0.0.0',function(){
        console.log('Express server listening to port '+parseInt(process.env.SOCKET_PORT, 10) || 4000);
    });
    io = require('socket.io').listen(server);

but if i add 但是如果我加上

port=5455
app.listen(port);

express starts listening but on different port any suggestions? 快递开始收听,但在其他端口上有什么建议吗?

Try to replace your port with a constant number and test it. 尝试用一个常数替换端口并进行测试。 Also, try to run my code below (it is based on yours and works for me). 另外,尝试在下面运行我的代码(该代码基于您的代码并为我工作)。 Write if it doesn't solve your problem. 如果不能解决您的问题,请写信。

const https = require('https');
const express = require("express");
const fs = require('fs');
const bodyParser = require("body-parser");
const morgan = require('morgan');

app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(morgan('dev'));

// for test
app.get('/', (req, res) => {
    res.send("Work");
})

const server = https.createServer({
        key: fs.readFileSync("./ssl.key"),
        cert: fs.readFileSync("./ssl.crt")
},app)
server.listen(8000)
io = require('socket.io').listen(server);
console.log('Start');
console.log(server.address().port);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM