1

Это код, который был представлен в примере:Настройка HTTPS на NodeJS для Watson Диалог

'use strict'; 

var server = require('./app'); 
var port = process.env.PORT || process.env.VCAP_APP_PORT || 3000; 

server.listen(port, function() { 
    console.log('Server running on port: %d', port); 
}); 

Но при использовании HTTPS вместо сервера он не работает хорошо с IBM Watson кода разговора. Ниже приведен код, я использовал:

var https = require('https'); 
var fs = require('fs'); 
var server = require('./app'); 
var port = process.env.PORT || process.env.VCAP_APP_PORT || 3000; 

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

var a = https.createServer(options, function (req, res) { 
    server.listen(port, function() { 
     console.log('Server running on port: %d', port); 
    }); 

}).listen(port); 

ответ

4

В случае Express API док заклинаниями на это довольно ясно. И это article тоже может помочь.

Вы можете создать HTTPS в node.js с:

var express = require('express'); //express for it 
var server = require('./app'); 
var https = require('https'); 
var http = require('http'); 
var fs = require('fs'); 
var port = process.env.PORT || process.env.VCAP_APP_PORT || 443; //example 

// from the Node.js HTTPS documentation, almost the same your code. 
var options = { 
    key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), 
    cert: fs.readFileSync('test/fixtures/keys/agent2-cert.cert') 
}; 

// Create a service (the app object is just a callback). 
var app = express(); 

// Create an HTTP service. 
http.createServer(app).listen(80); //you can put the port too. 
// Create an HTTPS service identical to the HTTP service. 
https.createServer(options, app).listen(port); 

Экспресс документация показать это:

enter image description here