2016-07-22 27 views
0

我正在嘗試將HTTPS服務器從Express遷移到Hapi。服務器在Express上運行良好,但是當我嘗試在Hapi中運行時,我收到消息「無效的服務器選項」和「TLS不允許」。將HTTPS服務器從Express遷移到Hapi

這是我(簡化)代碼快遞:

var fs = require('fs'); 
var https = require('https'); 
var app = require('express')(); 
var options = { 
    key: fs.readFileSync('server.key'), 
    cert: fs.readFileSync('server.crt') 
}; 

app.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

https.createServer(options, app).listen(8081); 

這是我(簡化)代碼哈皮:

var fs = require('fs'); 
var Hapi = require('hapi'); 

var options = { 
    tls: { 
     key: fs.readFileSync('server.key'), 
     cert: fs.readFileSync('server.crt') 
    } 
}; 
var server = new Hapi.Server(options); 

server.connection({ host: 'localhost', port: 8081 }); 

server.route({ 
    method: 'GET', 
    path: '/', 
    handler: function (request, reply) { 
     return reply('Hello world!'); 
    } 
}); 

server.start(); 

我使用自簽名的證書,但我想這應該沒問題?它在Express中工作。

回答

2

您的代碼看起來非常接近。我相信所有你必須做的就是哈啤使用您的證書和密鑰是隻將其移到到server.connection調用,如:

server.connection({ 
    host: 'localhost', 
    port: 8081, 
    tls: { 
    key: fs.readFileSync('server.key'), 
    cert: fs.readFileSync('server.crt') 
    } 
}); 
+0

這工作,謝謝! – wizplum

相關問題