在NodeJS上为Watson对话configurationHTTPS

这是在这个例子中提供的代码:

'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); 

在这种情况下, Express API doc很清楚地说明了这一点。 而这篇文章也可以帮助。

你可以在node.js创build一个HTTPS

 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); 

Express文档显示了这一点:

在这里输入图像说明