簡體   English   中英

Express-Nodejs-HTTPS服務器

[英]Express - Nodejs - HTTPS Server

我在我的應用程序中使用帶有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);

但是如果我加上

port=5455
app.listen(port);

快遞開始收聽,但在其他端口上有什么建議嗎?

嘗試用一個常數替換端口並進行測試。 另外,嘗試在下面運行我的代碼(該代碼基於您的代碼並為我工作)。 如果不能解決您的問題,請寫信。

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